qq_35159235 2023-05-22 16:03 采纳率: 0%
浏览 14

Http 异步请求无响应

我使用HttpWebRequest访问Http请求,使用异步方法时无响应

public async Task<string> PostAsync(string url, string postData, Hashtable headht = null)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/json;charset=UTF-8";
            request.Accept = "application/json";
            request.Timeout = 10000;

            #region headers设置
            if (headht != null)
            {
                foreach (DictionaryEntry item in headht)
                {
                    request.Headers.Add(item.Key.ToString(), item.Value.ToString());
                }
            }
            #endregion

            byte[] paramJsonBytes;
            paramJsonBytes = System.Text.Encoding.UTF8.GetBytes(postData);
            request.ContentLength = paramJsonBytes.Length;

            using (Stream reqStream = request.GetRequestStream())
            {
                reqStream.Write(paramJsonBytes, 0, paramJsonBytes.Length);
                reqStream.Close();
            }

            var response = request.GetResponseAsync() as HttpWebResponse;

            Stream resStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(resStream);
            string text = reader.ReadToEnd();
            return text;
        }

但是我将异步改成同步就没有这个问题

var response = request.GetResponse() as HttpWebResponse;
这需要怎么解决

  • 写回答

2条回答 默认 最新

  • 创意程序员 2023-05-22 16:21
    关注

    异步方式的返回,不是通过这种方式获取。因为是异步,结果不会马上给你,给你的只是一个响应,告诉你调用成功了。至于收到结果的时间,取决于这个异步方法后端的执行时间,真实结果的获取方式也取决于所异步的具体实现,查看相关的手册。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月22日

悬赏问题

  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名
  • ¥15 算法设计与分析课程的提问
  • ¥15 用MATLAB汇总拟合图
  • ¥15 智能除草机器人方案设计
  • ¥15 对接wps协作接口实现消息发送
  • ¥15 SQLite 出现“Database is locked” 如何解决?
  • ¥15 已经加了学校的隶属邮箱了,为什么还是进不去github education?😭
  • ¥15 求会做聚类,TCN的朋友有偿线上指导。以下是目前遇到的问题
  • ¥100 无网格伽辽金方法研究裂纹扩展的程序