我通过web服务使用HttpWebRequestPOST字节数组图片,图片大小类似于byte[4096]
代码:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(wsHost);
webRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
webRequest.Headers.Add(HttpRequestHeader.KeepAlive, "true");

我得到一个错误:
The underlying connection was closed. A connection that was expected to be kept alive was closed by the server

是服务器问题,还是我的发帖问题?

最佳答案

可能有很多事情。否则你能连接到服务器吗?
如果是,请尝试关闭预期的100继续(在发表文章之前)通过

System.Net.ServicePointManager.Expect100Continue = false;

根据http 1.1协议,当发送此头时,表单数据不会随初始请求一起发送。相反,这个头被发送到web服务器,如果实现正确,web服务器将以100(continue)响应。但是,并不是所有的web服务器都能正确处理这个问题,包括我试图向其发布数据的服务器。
通过http://haacked.com/archive/2004/05/15/http-web-request-expect-100-continue.aspx
如果这不起作用,另一个资源:http://geekswithblogs.net/Denis/archive/2005/08/16/50365.aspx表明许多人已经通过将其请求构建为http 1.0请求来解决了问题:
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(wsHost);
webRequest.KeepAlive = false;
webRequest.ProtocolVersion=HttpVersion.Version10;

10-07 21:57
查看更多