Request.CreateResponse(HttpStatusCode.OK)
和Request.CreateResponse(HttpStatusCode.OK, object)
之间有什么区别?
ASP.NET Web API中的public HttpResponseMessage Put(int id, ModelObject object)
{
if (ModelState.IsValid && id == object.objectID)
{
db.Entry(object).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
?
如果对象对应的模型没有状态,是不是要将HttpStatusCode设置为true还是false?
由于以下情况,我提出了这个问题
return JsonConvert.DeserializeObjectAsync<HttpResponseMessage>(response.Result.Content.ReadAsStringAsync().Result).Result;
**如果我检查httpresponsemessage.statuscode它显示httpresponsemessage在调用方法中为空,即使该行执行
任务响应= httpClient.PutAsJsonAsync(uri,modelObject);
ProgressBar pbFrame = new ProgressBar();
pbFrame.setVisible(true);
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
// run background process
}
});
这是正确的
答案 0 :(得分:0)
Request.CreateResponse(HttpStatusCode.OK)
仅使用httpStatusCode创建响应
Request.CreateResponse(HttpStatusCode.OK,"this test message")
使用与HTTPResponseMessage相关联的httpStatusCode创建响应
答案 1 :(得分:0)
根据你的措辞,你似乎混淆了元数据和有效载荷。
HTTP消息的状态行和标题描述了HTTP级别上发生的事情,因此客户端应用程序(“用户代理”)知道如何解释响应。
然后是有效载荷,服务器希望返回给客户端。当头文件描述有效载荷时,有效载荷对HTTP方面没有任何影响。
以下回复完全有效:
HTTP/1.1 404 Not Found
...
{
"found" : "true"
}
以下情况如下:
HTTP/1.1 200 OK
...
{
"status" : "error"
}
WebAPI不会查看您的有效负载以确定状态代码(因为两者之间没有任何关系),因此您可以单独指定响应代码及其有效负载。