HTTP Post从数据中删除内容

时间:2018-08-10 13:48:13

标签: c# .net httpclient

这是我的代码

var postData = "country=1";
postData += "&desktop_api=fsdf";
postData += "&adata=" + adData;
postData += "&about_page_data=" + aboutPageContent;
postData += "&url=" + url;

StringContent content = new StringContent("data=" + postData, Encoding.UTF8, "application/x-www-form-urlencoded");

HttpResponseMessage sResponse = await client.PostAsync(siteUrl, content).ConfigureAwait(false);

adData有超过200万个字符,但是在我的服务器上,我只能收到大约2800个字符。

1 个答案:

答案 0 :(得分:1)

URL编码的帖子类型有时对于大量数据来说过于局限,由于它是一个较长的url,因此使用多部分形式的数据解决了这个问题,这在以前可以得到更好的解释,我可以在这里进行说明:{{3 }}

在没有看到 adData 的值的情况下,很难告诉您是否有不良品格引起问题。但是为了安全起见,您应该确保变量使用UrlEncoded编码:

application/x-www-form-urlencoded or multipart/form-data?

TLDR:

var postData = "country=1";

  postData += "&desktop_api=fsdf";
  postData += "&adata=" + HttpUtility.UrlEncode(adData);;
  postData += "&about_page_data=" + HttpUtility.UrlEncode(aboutPageContent);;
  postData += "&url=" + HttpUtility.UrlEncode(url);

OR

如果您需要一个包含多个部分的示例:https://msdn.microsoft.com/en-us/library/system.web.httputility(v=vs.110).aspx