首页新闻找找看学习计划

[WCF新手求助]客户端POST调用WCF服务报400错误

0
悬赏园豆:20 [已解决问题] 解决于 2015-08-17 14:21

本人小白一个,网上找了很多WCF的例子照着做,总是遇到各种问题。

http://www.cnblogs.com/wuhong/archive/2011/01/13/1934492.html

我跟着上面这个例子做完之后,GET请求是成功的,可是POST请求却在HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();这里出了错,错误是WebException:远程服务器返回错误: (400) 错误的请求。

代码跟示例一样的,不知道问题出在哪里。有没有专家帮忙看看。

附上截图:

WCF
Bobby_Mei的主页 Bobby_Mei | 初学一级 | 园豆:165
提问于:2015-06-02 09:39
< >
分享
最佳答案
0

你先拿postman之类的第三方客户端发送post消息模拟请求试试,看问题是出在你的客户端还是服务器端了。 

收获园豆:20
天方 | 大侠五级 |园豆:5264 | 2015-06-03 22:37

谢谢分享,欲速则不达,正在从头学习Artech的《我的WCF之旅》。

稍后有空会使用Fiddler进行模拟测试。再次谢谢

Bobby_Mei | 园豆:165 (初学一级) | 2015-06-03 22:43
其他回答(2)
0

你这错误描述太简洁了, 能再细一点?

请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-06-02 11:07

你好,我未申请博客,所以无法上传本地图片,权限申请中,通过之后再补截图。

关于我的问题,不知道还需要哪方面的信息?

详细代码在我发的那个链接的博文中,完全copy的。

客户端是控制台程序,如博文的中的截图,我的程序在控制台正确输出了第一段GET请求返回的内容,报错是发生在客户端POST请求中,具体位置在如下代码处:

HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();

报错的Message是:

 WebException:远程服务器返回错误: (400) 错误的请求。

支持(0) 反对(0) Bobby_Mei | 园豆:165 (初学一级) | 2015-06-02 11:26

@bobbymei: 哦, I see,  这种情况基本上属于你请求的Request内容不正确导致的,比如应该用POST的地方用了GET,
还有可能是POST/GET的content-type不正确。  你所说的GET请求是成功的,可是POST报错是正常的, 你WCF设置的就是GET访问吧?

支持(0) 反对(0) 请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-06-02 13:46

@请叫我头头哥: 看来您并没有进上面链接中的文章看源代码。在接口和服务中,定义了两个服务方法,一个是用GET,另一个是POST,在客户端也分别用GET和POST进行测试。服务契约接口定义如下,FYR。

如果有空,您可以点击正文中的链接进去看步骤和详细代码,看看是否有问题。

[ServiceContract]
      public interface ITest
      {
           [WebGet(UriTemplate = "/User/Get/{Name}/{Position}", BodyStyle = WebMessageBodyStyle.Bare)]
        [OperationContract]
        List<User> GetUser(string Name, string Position);

          [WebInvoke(Method = "POST", UriTemplate = "/User/Create", BodyStyle = WebMessageBodyStyle.Bare)]
         [OperationContract]
         Result CreateUser(User u);
     }

支持(0) 反对(0) Bobby_Mei | 园豆:165 (初学一级) | 2015-06-02 13:57
0
Launcher | 园豆:45040 (高人七级) | 2015-06-02 15:51

谢谢分享,这篇文章已学习,并找到中文版的。

RESTful 服务(配备 WCF)介绍 by  Jon Flanders

支持(0) 反对(0) Bobby_Mei | 园豆:165 (初学一级) | 2015-06-03 22:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册