如何提取在响应头消息中返回的插入记录的ID?

时间:2018-04-03 23:50:48

标签: c# asp.net http-headers

HttpResponseMessage 从webApi POST返回此处Verb消息包含插入的记录ID如何在后面的代码中提取该ID

public HttpResponseMessage POST([FromBody]Map newmap)
            {
                try
                {
                    using (SHATDbEntities entities = new SHATDbEntities())
                    {
                        entities.Maps.Add(newmap);
                        entities.SaveChanges();
                        var message = Request.CreateResponse(HttpStatusCode.Created, newmap);
                        message.Headers.Location = new Uri(Request.RequestUri + newmap.Id.ToString());
                        return message;
                    }
                }
                catch (Exception ex)
                {
                    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
                }
            }

**此处回复**收到的消息

 HttpClient client = new HttpClient();
 client.BaseAddress = new Uri("http://localhost:2351/");
 client.DefaultRequestHeaders.Accept.Clear();
 client.DefaultRequestHeaders.Accept.Add(
 new MediaTypeWithQualityHeaderValue("application/json"));
 HttpResponseMessage response = client.PostAsJsonAsync(RequestURI, newmap).Result; 

此时我想从响应消息中提取该ID 任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:0)

这应该是必要的。

var resultTask = client.PostAsJsonAsync<MyObject>("http://localhost/api/service",new MyObject()).ContinueWith<HttpResponseMessage>(t => {
var response = t.Result;
var objectTask = response.Content.ReadAsAsync<MyObject>().ContinueWith<Url>(u => {
    var myobject = u.Result;
    //do stuff 
});
});