如何避免服务器错误414非常长的QueryString值

我有一个项目需要向网页发布一个250万字符的QueryString。 服务器本身只解析了5,400个字符或更少的URI。 在为WebRequest / WebResponse,WebClient和Sockets尝试了几组不同的代码之后,我终于找到了解决我问题的以下代码:

HttpWebRequest webReq; HttpWebResponse webResp = null; string Response = ""; Stream reqStream = null; webReq = (HttpWebRequest)WebRequest.Create(strURL); Byte[] bytes = Encoding.UTF8.GetBytes("xml_doc=" + HttpUtility.UrlEncode(strQueryString)); webReq.ContentType = "application/x-www-form-urlencoded"; webReq.Method = "POST"; webReq.ContentLength = bytes.Length; reqStream = webReq.GetRequestStream(); reqStream.Write(bytes, 0, bytes.Length); reqStream.Close(); webResp = (HttpWebResponse)webReq.GetResponse(); if (webResp.StatusCode == HttpStatusCode.OK) { StreamReader loResponseStream = new StreamReader(webResp.GetResponseStream(), Encoding.UTF8); Response = loResponseStream.ReadToEnd(); } webResp.Close(); reqStream = null; webResp = null; webReq = null; 

您不需要手动使用套接字。 您可以使用HttpWebRequest对象来处理套接字层。 对于将发布文件的示例代码,您可以在另一个问题上查看答案。 只需将目标url更改为HTTPSurl即可使用SSL。