如何使用Web API C#获取XML请求#

时间:2014-03-24 10:50:55

标签: c#-4.0 asp.net-web-api

当我可以将restfull请求发送到Web API时,如何在控制器post方法中接收请求的Body / payload和header。

public HttpResponseMessage post(HttpRequestMessage request)
    {

        var RequestBody = HttpContext.Current.Request.InputStream;
        var Headers = System.Web.HttpContext.Current.Request.Headers;

这里我可以获取标题值但无法获取正文请求。任何人都可以建议我如何获得身体吗?

2 个答案:

答案 0 :(得分:0)

一种方法是在控制器中创建一个看起来像这样的动作方法,

public async Task<HttpResponseMessge> Post(HttpRequestMessage request) {
   Var bodyStream = await request.Content.ReadAsStreamAsync();
}

答案 1 :(得分:0)

 client = new HttpClient();
            client.BaseAddress = new Uri(ur);

            if(JsonType is JsonMediaTypeFormatter)
            // Add an Accept header for JSON / XMLformat.
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            else
                client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/xml"));

            return client;

 HttpContent content = new ObjectContent<Requestclass>(requestClassObject, WebApiClient.JsonType);

        HttpResponseMessage response = client.PostAsync("path",content).Result;