开发者

uploading a file with WCF REST Services

开发者 https://www.devze.com 2023-02-25 06:16 出处:网络
I am new to WCF and Rest services, and tried to do some implementation from posts I found on the web, but I am still getting some problems.

I am new to WCF and Rest services, and tried to do some implementation from posts I found on the web, but I am still getting some problems.

So let me explain my scenario.

I have a WPF application, and in it I have a feedback form, which the client can fill up, attach some screenshots, and send it. Now my idea was to gather all this info inside an XML file, which I am already doing successfully, and then uploading this XML file on my server in a particular folder.

Now as I understand it, the client app has to have a POST method to post the stream to the server, and then I should have an aspx page on the server to decode back the stream I get from the POST, and formulate my XML file, and then save it inside the folder, correct me if I'm wrong.

At the moment I have implemented the code on the client as follows :-

    public static void UploadFile()
    {
        serverPath = "http://localhost:3402/GetResponse.a开发者_如何学编程spx";

        filePath = "C:\\Testing\\UploadFile\\UploadFile\\asd_asd_Feedback.xml";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverPath);

        //request.MediaType = "text/xml";

        request.ContentType = "text/xml";

        //request.Method = "POST";

        request.Method = "POST";

        //request.ContentLength = contentLength;

        //request.ContentType = "application/x-www-form-urlencoded";  

        using (FileStream fileStream = File.OpenRead(filePath))

        using (Stream requestStream = request.GetRequestStream())
        {
           int bufferSize = 1024;

            byte[] buffer = new byte[bufferSize];

            int byteCount = 0;

            while ((byteCount = fileStream.Read(buffer, 0, bufferSize)) > 0)
            {
               requestStream.Write(buffer, 0, byteCount);

            }
        }

        string result = String.Empty;

        try
        {
           using (WebResponse response = request.GetResponse())

            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
           {
                result = reader.ReadToEnd();
            }
        }
        catch (Exception exc)
        { 

        }
        if (result == "OK")
        {

        }
        else
        {
            // error...

        }
    } 

Now how can I pass the requestStream to the GetResponse.aspx page? And is this the correct way to go?

Thanks for your help and time


I don't understand what your code is trying to do. Have you considered actually using a WCF client and a WCF service for doing the actual upload itself?

There is a sample that does this! This blog post details how to use the programming model on the service side, and this follow-up blog post details how to use it on the client side. I've seen it used quite a bit for file upload and image transfer scenarios, so it might help your situation as well! The example present in those blog posts is a file upload one.

Hope this helps!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号