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();
     
            }
  • 相关阅读:
    [PHP] Laravel中env函数返回null原因
    [PHP] laravel8 发送通知邮件
    [PHP] hyperf代码热更新-hyperf-watch
    [日常]wps插入页眉页脚
    [linux] du查找数据大的目录
    [PHP] new static()和new self()的区别
    [docker] docker删除容器
    [docker] docker删除镜像
    [javascript] js删除数组中的元素
    [PHP] hyperf框架代码热更新
  • 原文地址:https://www.cnblogs.com/SanMaoSpace/p/2118133.html
Copyright © 2011-2022 走看看