2016-02-12 86 views
0

ASP.NET Web API中的Request.CreateResponse(HttpStatusCode.OK)Request.CreateResponse(HttpStatusCode.OK, object)有什麼區別?爲什麼在提供響應模型時必須指定HTTP狀態碼?

如果與對象對應的模型沒有狀態,是不是會將HttpStatusCode設置爲true或false?

我來這個問題,因爲以下情形的

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); 
      } 
     } 

**,如果我檢查httpresponsemessage.statuscode它顯示httpresponsemessage是即使行執行

任務響應調用的方法無效= httpClient.PutAsJsonAsync(uri,modelObject);

  return JsonConvert.DeserializeObjectAsync<HttpResponseMessage>(response.Result.Content.ReadAsStringAsync().Result).Result; 

是,這是正確的

+0

也許你需要趕上(DbUpdateConcurrencyException ex) 返回Request.CreateResponse(HttpStatusCode.NotFound,ex.Message); } –

+0

我已經用PUT方法的invoke部分提出了我的問題。你能看看嗎?我可能會在返回類型和序列化在那裏做錯了 – jubi

回答

0
Request.CreateResponse(HttpStatusCode.OK) 

創建只有httpStatusCode

Request.CreateResponse(HttpStatusCode.OK,"this test message") 

創建httpStatusCode與HTTPResponseMessage

+0

public HttpResponseMessage PutApplicationRole(){return Request.CreateResponse(HttpStatusCode.OK);}如果我試圖讓我的控制器中的這個值(message.IsSuccessStatusCode)它會是什麼返回。在這裏,我越來越空eventhough我設置HttpStatusCode – jubi

+0

我來問這個問題,因爲如果我使用我的評論中提到的代碼它是給出一個空響應。和我我使用Request.CreateResponse(HttpStatusCode.OK,modelobject)我沒有得到空引用 – jubi

0

相關聯。根據你的措辭迴應的迴應,你似乎混淆元數據和有效載荷。

HTTP消息的狀態行和標題描述了HTTP級別發生了什麼,因此客戶端應用程序(「用戶代理」)知道如何解釋響應。

然後是服務器希望返回到客戶端的有效負載。儘管頭部描述了有效載荷,但有效載荷對HTTP事物沒有任何影響。

下repsonse是完全有效的:

HTTP/1.1 404 Not Found 
... 

{ 
    "found" : "true" 
} 

於是如下:

HTTP/1.1 200 OK 
... 

{ 
    "status" : "error" 
} 

的WebAPI是不會看你的有效載荷,以確定該狀態代碼(因爲沒有兩者之間的關係),因此您可以分別指定響應代碼及其有效負載。

相關問題