发送jsonconvert.serializeobject时,Httpwebrequst返回500内部服务器错误

时间:2016-10-27 05:42:21

标签: asp.net c#-4.0

我们正在此处向网址发送JsonConvert.SerializeObject(lstobject);lstobject是发送到url.error的大型列表,也会在3分钟后返回,以便记录错误如何让webrequest等待5分钟。

var httpWebRequest = (HttpWebRequest)WebRequest        
    .Create(ConfigurationManager.AppSettings["JsonPayloadPostUrl"]
    .ToString());
httpWebRequest.Timeout = 1000000;
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    streamWriter.Write(jsonPayload);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    var responseText = streamReader.ReadToEnd();

}

Ee使用了httpWebRequest.Timeout = 1000000;,但服务器无法在5分钟内发回请求。如何请求等待服务器响应?

1 个答案:

答案 0 :(得分:1)

我可能会遗漏一些阅读您问题的内容,但HTTP 500服务器错误意味着服务器已提供响应,说它遇到了一些内部问题。因此,您无法通过在请求端设置更大的超时来阻止它。

关注https://www.w3.org/Protocols/HTTP/HTRESP.html

  

内部错误500

     

服务器遇到阻止它的意外情况   满足要求。

我会说你的请求没有正确构建,或者服务器有一些应用程序方面的问题。

回到超时设置方式,我觉得它看起来很合适。请注意,这一次可能会考虑DNS名称解析等主题,这反过来可能需要比首先看起来更多的时间。在你的情况下,这不应该是一个问题,看看你想要设置的值。