本人小白一个,网上找了很多WCF的例子照着做,总是遇到各种问题。
http://www.cnblogs.com/wuhong/archive/2011/01/13/1934492.html
我跟着上面这个例子做完之后,GET请求是成功的,可是POST请求却在HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();这里出了错,错误是WebException:远程服务器返回错误: (400) 错误的请求。
代码跟示例一样的,不知道问题出在哪里。有没有专家帮忙看看。
附上截图:
你先拿postman之类的第三方客户端发送post消息模拟请求试试,看问题是出在你的客户端还是服务器端了。
谢谢分享,欲速则不达,正在从头学习Artech的《我的WCF之旅》。
稍后有空会使用Fiddler进行模拟测试。再次谢谢
你这错误描述太简洁了, 能再细一点?
你好,我未申请博客,所以无法上传本地图片,权限申请中,通过之后再补截图。
关于我的问题,不知道还需要哪方面的信息?
详细代码在我发的那个链接的博文中,完全copy的。
客户端是控制台程序,如博文的中的截图,我的程序在控制台正确输出了第一段GET请求返回的内容,报错是发生在客户端POST请求中,具体位置在如下代码处:
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
报错的Message是:
WebException:远程服务器返回错误: (400) 错误的请求。
@bobbymei: 哦, I see, 这种情况基本上属于你请求的Request内容不正确导致的,比如应该用POST的地方用了GET,
还有可能是POST/GET的content-type不正确。 你所说的GET请求是成功的,可是POST报错是正常的, 你WCF设置的就是GET访问吧?
@请叫我头头哥: 看来您并没有进上面链接中的文章看源代码。在接口和服务中,定义了两个服务方法,一个是用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);
}
谢谢分享,这篇文章已学习,并找到中文版的。