如何知道我的 WebRequest 是否已满?
How to know if my WebRequest is full?
我在 C# 中创建了一个 WebRequest
:
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://myURL");
URL 是一个请求,可能会变大。实际上,根据用户的操作,我无法控制大小。
为了防止请求过长,我想解析一下。
我可以用来创建有效 WebRequest
的 string
的最大长度是多少?
在内部,url 字符串被解析为 Uri
class 实例 - 接受 Uri
实例的 WebRequest.Create
的第二个重载被调用。如果满足以下条件,您将获得 UriFormatException
:
The length of uriString exceeds 65519 characters or The length of the scheme specified in uriString exceeds 1023 characters.
来源:Uri Constructor (String) MSDN
并非所有浏览器都支持这么长的 uri,但如果您以编程方式创建 Web 请求,您将仅取决于服务器限制。
您将受到接收请求的服务器的限制,这将因服务器和配置而异。例如,Apache 将默认最大长度约为 8100 个字符,但这只是默认值。一个好的经验法则是 ~2000 个字符,因为这是大多数浏览器的最大值。至于HTTP spec,它是没有限制的,但是你会发现任何服务器都可以随心所欲地限制它。如另一个答案中所述,Uri 会将其限制为大约 65k 个字符。
关于 Apache 最大长度的问题 URL:What is apache's maximum url length?
所以关于浏览器限制的问题:
What is the maximum length of a URL in different browsers?
继RFC7230之后对URL尺码没有限制,建议
that all HTTP senders and recipients support, at a minimum,
request-line lengths of 8000 octets.
但是 WebRequest 存在物理限制,它包含在 maximum of 65519 chars
如 this answer 中所述,有用的限制是大约 2000 个字符。
如果您想通过 URL 发送许多参数,使用 POST 可能是更适合您需要的解决方案。这样实际的 URL 就不会失控,并且您的请求正文的限制要高得多。
我在 C# 中创建了一个 WebRequest
:
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://myURL");
URL 是一个请求,可能会变大。实际上,根据用户的操作,我无法控制大小。
为了防止请求过长,我想解析一下。
我可以用来创建有效 WebRequest
的 string
的最大长度是多少?
在内部,url 字符串被解析为 Uri
class 实例 - 接受 Uri
实例的 WebRequest.Create
的第二个重载被调用。如果满足以下条件,您将获得 UriFormatException
:
The length of uriString exceeds 65519 characters or The length of the scheme specified in uriString exceeds 1023 characters.
来源:Uri Constructor (String) MSDN
并非所有浏览器都支持这么长的 uri,但如果您以编程方式创建 Web 请求,您将仅取决于服务器限制。
您将受到接收请求的服务器的限制,这将因服务器和配置而异。例如,Apache 将默认最大长度约为 8100 个字符,但这只是默认值。一个好的经验法则是 ~2000 个字符,因为这是大多数浏览器的最大值。至于HTTP spec,它是没有限制的,但是你会发现任何服务器都可以随心所欲地限制它。如另一个答案中所述,Uri 会将其限制为大约 65k 个字符。
关于 Apache 最大长度的问题 URL:What is apache's maximum url length?
所以关于浏览器限制的问题: What is the maximum length of a URL in different browsers?
继RFC7230之后对URL尺码没有限制,建议
that all HTTP senders and recipients support, at a minimum, request-line lengths of 8000 octets.
但是 WebRequest 存在物理限制,它包含在 maximum of 65519 chars
如 this answer 中所述,有用的限制是大约 2000 个字符。
如果您想通过 URL 发送许多参数,使用 POST 可能是更适合您需要的解决方案。这样实际的 URL 就不会失控,并且您的请求正文的限制要高得多。