私はHttpClient.PutAsyncメソッドを正しく動作させることができません。私はGetAsyncメソッドをうまく動作させることができました。私も郵便配達でPUT呼び出しを成功させることができますHttpClient PutAsyncの問題ハングするか、または404が返されました
これは404が見つからないときに使用しているコードです。
public static async Task<HttpResponseMessage> PutAsJsonAsync<Contact>(HttpClient client, Contact contact)
{
client.DefaultRequestHeaders.Add("X-API-TOKEN","MyT0k3n");
var json = JsonConvert.SerializeObject(contact);
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
return await client.PutAsync("https://survey.qualtrics.com/API/v3/mailinglists/ML_123456/contacts/MLRP_123456", stringContent);
}
Contactクラスには、 "解除" などの変数を持っています。
私も(https://gist.github.com/alexandrevicenzi/9216739)これを試してみましたが、私はタスクスレッドがハングしてタイムアウトするまで待ちとき:
public static Task<HttpResponseMessage> PutJsonAsync(HttpClient client, string requestUri, Type type, object value)
{
return client.PutAsync(requestUri, new ObjectContent(type, value, new JsonMediaTypeFormatter(), "application/json"));
}
を私は、正直に非同期に精通していないよ待つ、またはHttpClientを。私は過去にHttpWebRequestとWebRequestを使用しました。私は私の古い方法でPUTを試み、失敗しました。誰にでもアイデアはありますか?
両方のリクエストをフィドラーで送信し、結果を表示します。私はあなたのリクエストが正しくフォーマットされていないと思うでしょう - > 404. – burnsi
ありがとう@バーンシ!これはむしろ恥ずかしいです。私はhttpsのためのフィドラーを設定し、ここで尋ねる前に試してみました。私のリクエストURIに "/"がありませんでした。自然に404.私は構文に集中しすぎて、タイプミスを逃してしまった。私は助けていただきありがとうございます、あなたのコメントは正しいですし、私の問題を見つけるために私を導く。あなたが答えとして投稿するなら、私はそれを受け入れるでしょう。 – hackingchemist