请试试我可能无法使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类具有诸如“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"));
}
我说实话不是很熟悉异步,等待,或HttpClient的。我过去使用过HttpWebRequest和WebRequest。我试图用我的旧方法PUT,并没有成功。有人有主意吗?
通过提琴手发送这两个请求,并告诉我们结果。我猜你的请求没有格式化 - > 404。 – burnsi
谢谢@burnsi !!这是相当尴尬的..我应该为https配置提琴手,然后在问这里之前尝试。我的请求URI缺少“/”。所以很自然。我太专注于语法,错过了错字。我很感激帮助,您的评论是正确的,并引导我找到我的问题。如果您将它作为答案发布,我会接受它。 – hackingchemist