首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理httpWebRequest响应

处理httpWebRequest响应
EN

Stack Overflow用户
提问于 2013-08-21 04:43:04
回答 2查看 222关注 0票数 0

我在httpWebRequest的表现从来都不好。总是首选WebClient但是..。孤注一掷的时间,孤注一掷的措施。

代码语言:javascript
复制
private static void GetResponseCallback(IAsyncResult asynchronousResult)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

                // End the operation
                HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
                Stream streamResponse = response.GetResponseStream();
                StreamReader streamRead = new StreamReader(streamResponse);
                string responseString = streamRead.ReadToEnd();
                // Close the stream object
                streamResponse.Close();
                streamRead.Close();

                // Release the HttpWebResponse
                response.Close();
                //allDone.Set();
            }
            catch (WebException exception)
            {

            }
        } 

我可以看到(当我把断点下一步),responseString是beautiul JSON,但我不能打印出来(MessageBox等),因为我的应用程序将崩溃。

你能告诉我怎么处理吗?干杯

EN

回答 2

Stack Overflow用户

发布于 2013-08-22 03:31:04

增加魔力

代码语言:javascript
复制
Dispatcher.BeginInvoke(() => { MessageBox.Show("OK"); });

并且像一个护身符一样工作:)

票数 1
EN

Stack Overflow用户

发布于 2013-08-21 12:44:41

试试这个

代码语言:javascript
复制
 using System.Net;
    public void sendRequest() 
    {
    WebRequest webRequest;
                    webRequest = WebRequest.Create(XXXXXXXXXX); 
                    webRequest.Method = "POST";
                    webRequest.ContentType = "application/x-www-form-urlencoded";
                    webRequest.BeginGetRequestStream(newAsyncCallback(GetRequestStreamCallback), webRequest);
    }

    public void GetRequestStreamCallback(IAsyncResult asynchronousResult)
            {
                    webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
                    Stream postStream = webRequest.EndGetRequestStream(asynchronousResult);
                    string postData = "Test";
                    byte[] byteArray = Encoding.UTF8.GetBytes(postData);
                    postStream.Write(byteArray, 0, byteArray.Length);
                    postStream.Close();
                    webRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), webRequest);
                }
    public void GetResponseCallback(IAsyncResult asynchronousResult)
            {
                try
                {
                    HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
                    HttpWebResponse response;
                    response = (HttpWebResponse)webRequest.EndGetResponse(asynchronousResult);
                    Stream streamResponse = response.GetResponseStream();
                    StreamReader streamReader = new StreamReader(streamResponse);
                    var Response = streamReader.ReadToEnd();
                    streamResponse.Close();
                    streamReader.Close();
                    response.Close();
                    if (Response == "")
                    {
                       //show some error msg to the user                    

                    }
                    else
                    {                   
                      //Your response will be available in "Response"                        
                    }
                }
                catch (WebException)
                {
                    //error    
                }
            }

这里的XXXXXXXX指的是你的url和发送到服务器的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18344606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档