zoukankan      html  css  js  c++  java
  • 如何对HttpWebRequest和HttpWebRsponse异步调用?

    public void Post(string url)
     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method = "POST";
                req.KeepAlive = true;
                req.Timeout = 300000;
                req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
                postData = Encoding.UTF8.GetBytes(PostData(param));
     req.BeginGetRequestStream(new AsyncCallback(RequestStreamCallBack), req);
    
      }
       public static void RequestStreamCallBack(IAsyncResult result)
            {
                HttpWebRequest request = (HttpWebRequest)result.AsyncState;
                Stream reqStream = request.EndGetRequestStream(result);
                reqStream.Write(postData, 0, postData.Length);
                reqStream.Close();
                //如何让程序在此处步不回到界面,调用完下面的对流的读取后,在返回界面?谢谢高手指点!
                request.BeginGetResponse(new AsyncCallback(ResponseCallBack), request);
            }
            public static void ResponseCallBack(IAsyncResult result)
            {
                HttpWebRequest req = (HttpWebRequest)result.AsyncState;
                HttpWebResponse response = (HttpWebResponse)req.EndGetResponse(result);
     
                using (Stream sw = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(sw))
                    {
                        xmls = reader.ReadToEnd();
                    }
                }
                if (response != null) response.Close();
     
            }
  • 相关阅读:
    好系统重装助手重装电脑系统步骤
    U盘加载速度慢的解决方法
    Win10应用商店缓存信息多如何去清理?
    怎么消除文件左上角的白色小框?
    U盘被识别但不显示盘符怎么样才能解决?
    【Gamma】Scrum Meeting 2
    【技术博客】 关于laravel5.1中文件上传测试的若干尝试
    【Beta】Phylab 发布说明
    【Beta】Phylab 测试报告
    【Beta】Scrum Meeting 10
  • 原文地址:https://www.cnblogs.com/SanMaoSpace/p/2118133.html
Copyright © 2011-2022 走看看