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 任何帮助将不胜感激,谢谢
答案 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
});
});