【问题标题】:HttpWebRequest truncating URL with non-english symbols in itHttpWebRequest 截断 URL,其中包含非英文符号
【发布时间】:2012-06-07 12:07:58
【问题描述】:

我正在使用动态 URL 创建 HttpWebRequest,该 URL 有时可能包含俄罗斯符号。 有时我会遇到一个不知道如何处理的问题:在编码为 URL 时,每个 RU 字符都已转换为 URL 字符实体等效项 (%20...)。显然,在这样的转换 URL 变得太长之后,因此 HttpWebRequest 截断了最后几个字符,所以我得到了 404 错误,而不是正确的 HTTP 结果。

有没有办法绕过这个限制?

我的网址如下所示:

http:\\1.1.1.1\some?page=2&var=тестовое значение строки (this part can be very long)

我将其作为 GET 发送,因为我正在使用的网络应用程序此时期待 GET 请求。

【问题讨论】:

  • 我认为您不会绕过 URL 编码为 ASCII 也不会解决请求中的长度限制
  • 如果您要发送这么多数据,您真的应该尝试使用 POST 请求并以这种方式传递数据,而不是通过 GET 请求中的 URL 参数。这通常是推荐的方法,如果在 Web 服务器上启用了日志记录,您的日志文件将不会被无关的详细信息淹没。
  • 这个其他线程可能会帮助stackoverflow.com/questions/1587857/…

标签: c# .net httpwebrequest


【解决方案1】:

唯一的答案是您必须以任何其他方式发送它,因为查询字符串的长度有限制。

错误 404 或“HTTP 错误 414。请求 URL 太长”。你会得到只是因为查询字符串的长度,因为你发送的数据超过了限制。

参考这个:http://forums.asp.net/t/1139751.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2011-05-08
    • 1970-01-01
    • 2012-12-19
    相关资源
    最近更新 更多