WCF REST的POST时候报400错误是怎么回事

dropping 2012-12-17 04:15:22
Get方法可以正常返回值,POST方法提示:远程服务器返回错误: (400) 错误的请求。
服务端代码如下:
    [ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class RestService
{
[WebInvoke(UriTemplate = "Create", Method = "POST")]
public string Create(string s)
{
return s;
}

[WebGet(UriTemplate = "Get?id={id}",RequestFormat = WebMessageFormat.Json)]
public SampleItem Get(string id)
{
return new SampleItem {Id = 1, StringValue = "test"};
}
}

客户端调用代码如下:
WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
webClient.Headers[HttpRequestHeader.ContentType] = "application/json";
string tt = webClient.DownloadString("http://localhost:7000/RestService/Get?id=tt");
Console.WriteLine(tt);

WebClient client=new WebClient();
client.Encoding = System.Text.Encoding.UTF8;
client.Headers[HttpRequestHeader.ContentType] = "application/json";
//下一行报错
client.UploadString(new Uri("http://localhost:7000/RestService/Create", UriKind.Absolute), "POST", "test");
...全文
1916 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianyou2008 2014-05-29
  • 打赏
  • 举报
回复
我用楼主的代码,string tt = webClient.DownloadString这一行就报错了!请教楼主,能给个完整的例子吗,找好久了!非常感谢!
机器人 2013-02-27
  • 打赏
  • 举报
回复
string post 比较特殊的。要加上 [FormBody] 特性。
Lambert_Zhao 2013-02-25
  • 打赏
  • 举报
回复
建议检查下配置

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧