我目前第一次使用asp.net web api,并且在尝试发布特定方法时遇到404
被退回的问题。
api工作正常,但当其中一个参数达到一定长度时,返回404
。
有问题的参数长度只有2000个左右。
这是api方法的签名:
public Boolean Add(String Source, Int32 CreatedByID, String CreatedBy,
String Header, String Body, Boolean IsLive, Boolean IsNotification)
任何想法我做错了什么?如果有任何不同,我会用角度调用我的api。
答案 0 :(得分:1)
在某些浏览器中,网址的最大长度为2000个字符,因此请尝试使用较少的参数,看看是否有帮助。
答案 1 :(得分:1)
GREAT 解释和 CREDIT 到此处:What is the maximum length of a URL in different browsers?
一些关键点,万一其他人迷路了...我一直保留摘录“以免假装这是我自己的工作!
如果您保持网址不超过2000个字符,它们几乎可以在客户端和服务器软件的任何组合中使用。
RFC 2616(超文本传输协议HTTP / 1.1)第3.2.1节说
不会放置HTTP协议 对于长度的任何先验限制 一个URI。服务器必须能够处理 他们服务的任何资源的URI, 并且应该能够处理的URI 如果他们提供无限长度 基于GET的表单可以生成 这样的URI。服务器应该返回 414(Request-URI Too Long)状态,如果a URI比服务器长 处理(见10.4.15节)。
注意:服务器应该谨慎 关于取决于URI长度 超过255个字节,因为一些较旧的客户端或代理 实现可能无法正确支持这些长度。
IE8's maximum URL length is 2083 chars,似乎IE9 has a similar limit。
我测试了IE10,地址栏只接受2083个字符。您可以点击一个比此长的网址,但地址栏仍会只显示此链接的2083个字符。