无法使用单个字符串参数发布到WCF REST服务

时间:2016-08-16 11:08:02

标签: c# http-post wcf-rest

我在使用单个字符串参数发布到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服务器端,因为在服务器端它没有遇到异常。

这是我在客户端遇到的例外情况:

WCF client exception

感谢任何帮助。

顺便说一下,如果我将WebInvokePost更改为Get,那就可以了。

提前谢谢。

修改 请求能够到达服务器,但服务方法没有例外。

0 个答案:

没有答案