方法调用成功,没有Request body。当我使用下面的Request body时,我得到HTTP / 1.1 400 Bad Request。你觉得下面要求身体有任何明显的问题吗?
请求正文
{
"_userConfigData":{"UserName":"bXZpbmphbXVyaQ==", "FirstName":"User1", "LastName":"Last1", "ContactInfo":"None" },
"_configResult": "Miscellaneous"
}
请求标题
User-Agent: Fiddler
Content-Type: application/json
Host: localhost:1706
Content-Length: 167
这是服务器端方法:
[OperationContract]
[WebInvoke(UriTemplate = "UpdateUserDetails/?_clientIP={_clientIP}&AdminName={AdminName}", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
public void UpdateUserDetails(UserConfigData _userConfigData, ConfigResult _configResult, string _clientIP, string AdminName)
{
//
}
以下是我与Fiddler2一起使用的网址:
谢谢,
答案 0 :(得分:7)
我改变了我的服务,就像上面的帖子一样,直到我注意到提供的第一个屏幕截图时它才起作用。在fiddler标题中是行
Content-Type:application / json
这允许我将数据发送到服务。将返回类型更改为字符串后,我可以恢复原始数据。
答案 1 :(得分:5)
我能够让你的代码工作,但我不得不做一些修改。
无论如何,这是包含数据的更新模型对象:
public class UserConfigData
{
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string ContactInfo { get; set; }
}
public class Result
{
public UserConfigData UserConfigData { get; set; }
public string ConfigResult { get; set; }
public string ClientIp { get; set; }
public string AdminName { get; set; }
}
服务器端方法:
[WebInvoke(UriTemplate = "UpdateUserDetails", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
public void UpdateUserDetails(Result result)
{
//
}
你传入的json:
{
"AdminName":"String content",
"ClientIp":"String content",
"ConfigResult":"String content",
"UserConfigData":{
"ContactInfo":"String content",
"FirstName":"String content",
"LastName":"String content",
"UserName":"String content"
}
}
更新: 提琴手请求屏幕截图:
请求到达服务器UpdateUserDetails()处理程序: