我在使用单个字符串参数发布到WCF REST服务时遇到问题。
我的WCF服务装饰如下:
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle =WebMessageBodyStyle.Wrapped)]
IList<CustomerDTO> IServiceCustomers.GetCustomers(string formDataString)
我的消费者代码:
string host = "http://localhost:8001";
string path = "WcfRest/GetCustomers";
PostData post = new PostData();
post.Add("Age", txtAge.Text);
post.Add("Group", txtGroup.Text);
IList<CustomerDTO> customers = null;
string recordCount = string.Empty;
var message = new HttpClient().PostMessageAsJson(host, path, post).Result;
customers = message.GetObjectFromMessage<IList<CustomerDTO>>().Result;
dgv.DataSource = customers;
以下是发布请求的代码:
public static async Task<HttpResponseMessage> PostMessageAsJson(this HttpClient http, string host, string path, PostData postData)
{
http.BaseAddress = new Uri(host);
string data = string.Empty;
if (postData != null)
{
data = postData.ToString().ToJsonString();
}
StringContent request = new StringContent(data);
request.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
return await http.PostAsync(path, request).ConfigureAwait(false);
}
问题似乎是请求从未到达WCF服务器端,因为在服务器端它没有遇到异常。
这是我在客户端遇到的例外情况:
感谢任何帮助。
顺便说一下,如果我将WebInvoke
从Post
更改为Get
,那就可以了。
提前谢谢。
修改 请求能够到达服务器,但服务方法没有例外。