web api返回404

时间:2014-03-28 11:46:30

标签: c# asp.net

我目前第一次使用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。

2 个答案:

答案 0 :(得分:1)

在某些浏览器中,网址的最大长度为2000个字符,因此请尝试使用较少的参数,看看是否有帮助。

答案 1 :(得分:1)

GREAT 解释和 CREDIT 到此处:What is the maximum length of a URL in different browsers?

一些关键点,万一其他人迷路了...我一直保留摘录“以免假装这是我自己的工作!

简短回答 - 事实上限制为2000个字符

如果您保持网址不超过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个字节,因为一些较旧的客户端或代理         实现可能无法正确支持这些长度。

Internet Explorer的限制......

IE8's maximum URL length is 2083 chars,似乎IE9 has a similar limit

我测试了IE10,地址栏只接受2083个字符。您可以点击一个比此长的网址,但地址栏仍会只显示此链接的2083个字符。