我有以下代碼。是否可能或有必要設置ServiceStack客戶端刪除請求的內容類型?
public T SendUpdateRequest(string url)
{
using (JsonServiceClient client = new JsonServiceClient())
{
T response = client.Put<T>(url);
return response;
}
}
我有創建和刪除請求,調用JsonServiceClient分別Post
和Delete
方法類似的方法。
當調用我的更新或創建方法時,對外部API的調用工作正常。刪除不。我可以看到,如果通過REST console向其發出請求,API的刪除方法確實有效。
當我比較我的非工作刪除與Fiddler中工作人員的請求/響應時,我可以看到主要區別是我的請求沒有將content-type
設置爲application/json
(所有這些方法都返回JSON)。
我的問題是,是否有可能(甚至有必要)將我的刪除請求的content-type
明確設置爲application/json
以成功調用我的API方法?
作爲一個方面說明。因爲客戶端是cookie的容器,所以請注意爲每個請求使用「新的JsonServiceClient()」,因此如果您在一個客戶端中接收到會話cookie,則其他實例不可用。最好創建客戶端的一個實例,並在請求中共享它。 – Scott 2014-08-28 07:12:30
'Content-Type'HTTP Header用於標識HTTP Request BODY所處的格式。由於HTTP GET和DELETE請求沒有Request Body,因此不會按預期方式添加Content-Type。你可能正在尋找'Accept'頭,它表示客戶端希望響應體的格式是什麼,在ServiceStack的'JsonServiceClient'中總是'application/json'。 – mythz 2014-08-28 15:38:41
優秀的建議,謝謝你們兩位。 – 2014-08-28 22:05:31