web api returns 404

本文关键字:returns api web | 更新日期: 2023-09-27 17:54:20

我目前第一次使用asp.net web api,并且在尝试发布到特定方法时返回404 s存在问题。

api工作正常,但当其中一个参数达到一定长度时,返回404

所讨论的参数长度只有2000个字符左右。

这是api方法的签名:

public Boolean Add(String Source, Int32 CreatedByID, String CreatedBy, 
            String Header, String Body, Boolean IsLive, Boolean IsNotification)

你知道我做错了什么吗?如果有区别的话,我用angular来调用api

web api returns 404

在某些浏览器中,url的最大长度是2000个字符,所以尝试使用更少的参数,看看是否有帮助。

一个伟大的解释和CREDIT在这里:在不同的浏览器中URL的最大长度是多少?

一些关键点,以防另一个丢失…我逐字保留了摘录,以免假装这是我自己的作品!

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

如果你把url保持在2000个字符以内,它们几乎可以在任何客户端和服务器软件的组合中工作。

较长的答案-首先,标准…

RFC 2616(超文本传输协议HTTP/1.1)章节3.2.1规定

HTTP协议没有放置对
长度的任何先验限制一个URI。服务器必须能够处理它们所服务的任何资源的URI;并且应该能够处理的uri无限长度,如果他们提供可以生成的基于get的表单这样的uri。服务器应该返回414(请求uri太长)状态URI的长度超过服务器所能承受的长度句柄(见10.4.15节)。

注意:服务器应该谨慎关于依赖于URI长度超过255字节,因为一些旧的客户端或代理实现可能不支持这些长度。

Internet Explorer的限制…

IE8的最大URL长度是2083个字符,似乎IE9也有类似的限制。

我已经测试了IE10,地址栏只接受2083个字符。你可以点击一个比这个长度长的URL,但是地址栏仍然只会显示这个链接的2083个字符。