-1
我正在使用以下方法發佈到Web服務。當我使用它時,我經常會遇到400錯誤。如果我用我通過在使用,雖然在Posty相同的數據,該服務返回預期的數據當我使用PostAsync發送數據時,服務器返回400錯誤
public static async Task<T> SendData<T>(string apiToUse, params string[] data)
{
var url = string.Format("{0}/{1}", Constants.BaseTestUrl, apiToUse);
dynamic t;
var kvp = new Dictionary<string, string>();
for (var i = 0; i < data.Length; i += 2)
{
kvp.Add(data[i], data[i + 1]);
}
var dta = new FormUrlEncodedContent(kvp);
dta.Headers.ContentType = new MediaTypeHeaderValue("multipart/form-data");
using (var client = new HttpClient())
{
var result = client.PostAsync(url, dta).Result;
//result.Content.Headers.ContentType = new MediaTypeHeaderValue("multipart/form-data");
var rv = result.Content.ReadAsStringAsync().Result;
t = JsonConvert.DeserializeObject<T>(rv);
}
return t;
}
在我的測試例子,我進入帕拉姆的String []數據的兩個鍵和兩個值。
我能看到的唯一不同之處在於,在點擊發送(我也在這裏完成)之前,我已經定義了Content-Type。
這讓我有點瘋狂,所以任何指針都會被讚賞。
你檢查了目標網址是否正確?我認爲HttpClient在其構造函數中需要一個基地址,然後在其方法上使用相對地址。 –
400中的HTTP響應代碼意味着您的請求有問題。如果不知道您要發佈的服務以及期望的服務,那麼我們可以推薦的內容並不多。檢查您嘗試使用的API的文檔,並確保您的請求格式正確。 – TZHX