1

我发送 POST 和 GET WebRequest 应该支持更长的互联网中断时间。这个想法是将失败(超时)的网络请求排队,并尝试定期重新发送它们,直到互联网再次启动并发送所有排队的网络请求。

但是,我似乎不能只重用旧的 WebRequest。我需要重新设置吗?

IAsyncResult result = request.BeginGetResponse (o => {
        callCallback (o);
}, state);

仅使用以下命令设置请求时:

var request = HttpWebRequest.Create (String.Format (@"{0}/{1}", baseServiceUrl, path)); 
request.Method = "GET";
request.ContentType = "application/xml; charset=UTF-8";
request.Headers.Add ("Authority", account.Session);
return request;

它工作正常。但是在超时(和request.Abort ();)之后,调用BeginGetResponse()同一个 webrequest 就会冻结。

4

1 回答 1

1

您不能BeginGetResponse()在同一个上多次调用HttpWebRequest。我不确定 .NET 是否支持,但是 Mono 的实现是不可能的(而且不是很容易改变的东西)。

另请参阅我可以在不断开与服务器的连接的情况下重用 HttpWebRequest 吗?- 底层网络连接将被重用。

于 2013-03-07T18:47:15.357 回答