如何使用HttpWebRequest在Windows Phone中发送长查询字符串

时间:2013-02-05 23:29:10

标签: windows-phone-7 httpwebrequest windows-phone-7.1 query-string windows-phone-8

我正在使用Facebook C#SDK对Facebook进行API调用,而我似乎无法通过HTTP GET发送长查询字符串。我需要一个很长的FQL查询(select .. from .. where .. in)来执行,我似乎无法发送它。如果查询较小,则会成功发送并返回结果。不幸的是,由于FQL支持GET而不支持POST,因此我坚持GET。

如何在Windows Phone HttpWebRequest中增加默认查询字符串限制?

我正在使用Windows Phone SDK 7.1,但在Windows Phone 8设备上进行测试。

1 个答案:

答案 0 :(得分:1)

您似乎需要切换到http帖子(如果可能)或以某种方式优化您的请求。

阅读What is the maximum length of a URL in different browsers?。虽然HTTP的官方标准说实际上应该没有最大值,但实际上there are maximums。例如,IE have an upper bound of 2083 characters。 Windows Phone似乎与IE有类似的限制。

  

Microsoft Internet Explorer具有最大统一资源定位器   (URL)长度为2,083个字符。 Internet Explorer也有最大值   路径长度为2,048个字符。此限制适用于POST   请求和GET请求网址。

     

如果您使用的是GET方法,则最多限制为2,048   字符,减去实际路径中的字符数。

     

但是,POST方法不受URL大小的限制   提交名称/值对。这些对在标题中传输   而不是在URL中。

     RFC 2616“超文本传输​​协议 - HTTP / 1.1”未指定   对URL长度的任何要求。

来源:http://social.msdn.microsoft.com/Forums/en-US/wpdevelop/thread/f96622fe-4dcb-4d38-8831-4cfad1aa4a06/