HttpClient PutAsync 问题挂起或返回 404

HttpClient PutAsync Issues Hanging Or 404 Returned

尽我所能,但我无法使 HttpClient.PutAsync 方法正常工作。我能够使 GetAsync 方法正常工作。我还能够在 Postman

中成功进行 PUT 调用

这是我在收到 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);

}

联系人 class 有 "unsubscribed" 等变量。

我也试过这个(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"));
}

老实说,我对 async、await 或 HttpClient 不是很熟悉。我过去使用过 HttpWebRequest 和 WebRequest。我尝试用我的旧方法进行 PUT,但没有成功。谁有想法?

大多数情况下,当您收到此类任务的 404 时,您的请求 url 格式不正确。

提示:

尝试使用 fiddler 捕获这两个请求并在原始版本中进行比较。

Fiddler