代码之家  ›  专栏  ›  技术社区  ›  Registered User

如何避免非常长的querystring值出现服务器错误414

  •  1
  • Registered User  · 技术社区  · 16 年前

    我有一个项目需要在网页上发布250万个字符的查询字符串。服务器本身只分析了5400个字符或更少的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;
    
    1 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    你不需要手动使用插座。您可以使用httpwebrequest对象来处理套接字层。你可以看到答案 this other question 对于一些将发布文件的示例代码。只需将目标URL更改为https URL即可使用ssl。