我收到400个错误请求 - 当请求的长度超过320个字符

时间:2016-11-06 11:04:21

标签: c# asp.net asp.net-web-api uri

不确定原因是什么。还在Web.config中添加了以下内容。 maxUrlLength =" 1024" maxQueryStringLength =" 1024" requestPathInvalidCharacters =""的maxRequestLength =" 1024" relaxedUrlToFileSystemMapping ="真" 我编码uri参数并发送请求,但始终获取无效的URL。 网址:http://localhost:51840/api/xxxxxxx/xxxxxxxxxxxx/n4cEF3OM0LC0q8I6OMe0XdHo8evXnoeyC06A%252fL%252fu0a%252f6e0RQrdxl2%252fPkSKNfh4aEQm78TReX1zIfGDB1bgH%252bGBEI%252fBw6i0DwQ6%252b3dk6yjs1UZqqICQye6QqVX8bJT%252fBK7GE8a22FeXJiPVtEgFRmp4WcHc4pIRHaE6QGK28kiASGFfUC9tDdRZhLfmYJsluGpsseSUOc5Inxlf3fTFNe7sg7gixrLTlwhfJIATZWWsPc%252bfo6BITTFA%253d%253d

如果我将网址减少到以下,它就可以了。 http://localhost:51840/api/xxxxxxx/xxxxxxxxxxxx/n4cEF3OM0LC0q8I6OMe0XdHo8evXnoeyC06A%252fL%252fu0a%252f6e0RQrdxl2%252fPkSKNfh4aEQm78TReX1zIfGDB1bgH%252bGBEI%252fBw6i0DwQ6%252b3dk6yjs1UZqqICQye6QqVX8bJT%252fBK7GE8a22FeXJiPVtEgFRmp4WcHc4pIRHaE6QGK28kiASGFfUC9tDdRZhLfmYJsluGpsseSUOc5Inxlf3fTFNe7sg7gixrLTlwhfJIATZWWsPc%252bfo6BI

当最后10个字符时,它给我一个错误的请求。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:12)

记录我的经历:

我的问题是@Mark在问题评论中指出的问题:

  

" 默认情况下,最大网址段长度为260 "

他建议在注册表中增加此限制,但我并不想要这样的麻烦。 @Vignesh T的建议效果更好:

  

" 将网址段替换为查询字符串参数,工作正常"

总之,而不是:

http://path.to.website/very-long-string-goes-here/

我刚刚做了:

http://path.to.website/?key=very-long-string-goes-here

答案 1 :(得分:2)

在powershell中运行

Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\HTTP\Parameters -Name UrlSegmentMaxLength -Value 2000 -Type "Dword"

然后执行net stop httpnet start http

https://blogs.msdn.microsoft.com/amyd/2014/02/06/response-400-bad-request-on-long-url/