2013-04-14 21 views
2

我使用的是ServiceStack客戶端調用web服務如下:如何在ServiceStack客戶端中設置ContentType?

var client = new JsonServiceClient(apiUrl); 
var url = "/V1/MyApiCall"; 

var response = client.Post<MyApiCallResponse>(url, "foo=" + request.foo + "&bar=" + request.bar); 

這通常效果很好,但我需要改變Content-Type頭。默認情況下(並且對於我通過服務進行的大多數其他呼叫),這需要爲application/json,但在此特定情況下,它需要爲application/x-www-form-urlencoded

client.ContentType沒有實現setter,所以我該如何改變Content-Type頭?

回答

1

請勿使用Servicestack's C# Clients來調用第三方API。您正在使用預期發送JSON的JSON客戶端。

var response = url.PostToUrl(new { foo = request.foo, bar = request.bar }, 
        acceptContentType = "application/json") 
    .FromJson<MyApiCallResponse>(); 
+0

感謝mythz,這是有道理的:如果你需要調用第三方的API,看看POSTing data examples,e.g您可以使用ServiceStack's built-in HTTP Utils。順便說一句,url參數已被複制(參數列表中不需要),但由於編輯是在6個字符以下,SO不會讓我修復它。 –

+0

@DarrenOster酷固定,thx。 – mythz

相關問題