如何重新发送“失败”邮件?WebRequest

本文关键字:邮件 WebRequest 失败 何重新 | 更新日期: 2023-09-27 18:02:38

我发送POST和GET WebRequest,应该支持较长时间的互联网关闭。这个想法是将失败(超时)的webrequest排队,并尝试定期重新发送它们,直到互联网再次启动,所有排队的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 ();)之后,在同一个webrequest上调用BeginGetResponse()只是冻结。

如何重新发送“失败”邮件?WebRequest

不能在同一个HttpWebRequest上多次调用BeginGetResponse()。我不确定这是否支持。net,但这是不可能的与Mono的实现(并不是什么容易改变)。

参见我可以重用HttpWebRequest而不从服务器断开连接?-底层网络连接将被重用