首页 新闻 会员 周边 捐助

问一个关于WebAPI调用的问题..

0
悬赏园豆:20 [已解决问题] 解决于 2015-05-11 16:24

问题是这样的,在[HttpGet]标识下,我在浏览器直接输入URL或是通过后台发起HTTP请求都是可以访问到Controller中的的方法的...

 

因为要传的参数有点长,远超过255的长度了,所以将[HttpGet]改成[HttpPost]了,

 

之后通过后台程序发起HTTP请求,同样的URL,提示 404的服务器异常..

 

在浏览器请求如下图:

 

这个文件夹中的2个配置是这样的

 

 

 

想问一下,如果要想后台能用Post的方式请求的话,请问配置要怎么修改呢?

 

我没有遵守REST的风格,所以改了上图中的2个配置,能直接调用方法名称的.但是Post下就出问题了..

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2015-04-27 10:37
< >
分享
最佳答案
0

在这个Controller中,还有其他方法也标记为[HttpPost]了吗?

收获园豆:10
dudu | 高人七级 |园豆:29570 | 2015-04-27 11:34

只有这一个是Post,另一个是get

hexllo | 园豆:318 (菜鸟二级) | 2015-04-27 11:51

@hexllo: 这两个方法的参数类型是不是一样的?

dudu | 园豆:29570 (高人七级) | 2015-04-27 11:54

@dudu: 你这样说提醒我了,后来发现一个规律,方法里只要写了参数,都调用不了..必须是无参数..有没有办法让其有参数也能调用到?

hexllo | 园豆:318 (菜鸟二级) | 2015-04-27 15:36
dudu | 园豆:29570 (高人七级) | 2015-04-27 17:24
其他回答(3)
0

..没看出来有什么问题.你用浏览器直接访问发起的是get请求

是这个问题吗?

收获园豆:5
吴瑞祥 | 园豆:29449 (高人七级) | 2015-04-27 10:47

就是浏览器没法post,所以我建了一个程序模拟post...在这个程序中报404异常了

支持(0) 反对(0) hexllo | 园豆:318 (菜鸟二级) | 2015-04-27 11:52

@hexllo: 你查下院子里webapi的例子,参数请求方法明明,都是有限制,你明显不清楚这些限制

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2015-04-27 17:08
0

你这个都标记为了HttpPost了,客户端就应该发Post请求, 你现在发的还是Get请求,自然报错了。

要修改的是客户端,而不是服务器端。

收获园豆:2
天方 | 园豆:5432 (大侠五级) | 2015-04-27 10:49

是的,浏览器是get.

 

我的意思是,我新建了一个程序,用C#代码在这个程序里发起POST请求,报404异常

支持(0) 反对(0) hexllo | 园豆:318 (菜鸟二级) | 2015-04-27 11:50

@hexllo: 404异常还是一样的话,就是请求方法错了

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2015-04-27 11:55

@吴瑞祥: 发现规律了,方法里只要写了参数,都调用不了..必须是无参数..怎么解决呢?用Header来传吗?

支持(0) 反对(0) hexllo | 园豆:318 (菜鸟二级) | 2015-04-27 15:35
0

参数的原因吧,如果参数不是复杂类型,直接在地址栏中传递。如果参数是复杂类型,就在消息头中传递。

收获园豆:3
悟行 | 园豆:12559 (专家六级) | 2015-04-27 15:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册