【发布时间】:2015-02-17 15:22:40
【问题描述】:
我是 C# 新手,我希望异步发送 Web 请求。我使用带有方法POST 的HttpWebRequest。问题是,如果我使用函数GetRequestStream(),即使我得到异步响应,我的应用程序也会冻结。我读到,函数GetRequestStream() 立即尝试与服务器通信。我找到了函数BeginGetResponse(),但是我不明白如何使用它。
有人可以解释一下它是如何工作的吗?如何异步写入post数据?
我想写这样的函数(不管我要写多少其他私有函数):
public delegate void ReceiveFunc(HttpWebResponse response);
public static void sendRequest(string url, HttpWebRequest request, string content, ReceiveFunc callback) {
// Return response back to callback
}
谢谢。
【问题讨论】:
-
查看
HttpClient类和async-await关键字。它会让你更轻松。 -
GetRequestStream()不是异步操作。 -
@YuvalItzchakov 是对的:
HttpClient更易于使用。但如果您是 C# 新手,我强烈建议您先阅读async/await。 -
谢谢大家,我会研究一下那门课,看起来不错。如果您将其写为答案,我将其标记为该问题的答案。
-
好吧,
HttpClient类不存在。发生了什么事?
标签: c# http httpwebrequest dotnet-httpclient