Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpClient PutAsync问题挂起或返回404_C#_.net_Asp.net Web Api_Put_Dotnet Httpclient - Fatal编程技术网

C# HttpClient PutAsync问题挂起或返回404

C# HttpClient PutAsync问题挂起或返回404,c#,.net,asp.net-web-api,put,dotnet-httpclient,C#,.net,Asp.net Web Api,Put,Dotnet Httpclient,尽管我可能尝试,但我无法使HttpClient.PutAsync方法正常工作。我能够使GetAsync方法正常工作。我还能够在邮递员中成功地拨打PUT电话 这是我在收到404未找到时使用的代码 public static async Task<HttpResponseMessage> PutAsJsonAsync<Contact>(HttpClient client, Contact contact) { client.DefaultRequestHeaders.Add

尽管我可能尝试,但我无法使HttpClient.PutAsync方法正常工作。我能够使GetAsync方法正常工作。我还能够在邮递员中成功地拨打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);

}
公共静态异步任务PutAsJsonAsync(HttpClient客户端,联系人)
{
client.DefaultRequestHeaders.Add(“X-API-TOKEN”、“MyT0k3n”);
var json=JsonConvert.SerializeObject(contact);
var stringContent=newstringcontent(json,Encoding.UTF8,“application/json”);
返回等待客户端。PutAsync(“https://survey.qualtrics.com/API/v3/mailinglists/ML_123456/contacts/MLRP_123456",内容),;
}
Contact类具有“unsubscribed”等变量

我也尝试了这个()但是当我等待任务时,线程挂起并超时:

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"));
}
公共静态任务PutJsonAsync(HttpClient客户端,字符串请求URI,类型,对象值)
{
返回client.PutAsync(requestUri,新的ObjectContent(类型,值,新的JsonMediaTypeFormatter(),“application/json”);
}

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

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

提示:

尝试fiddler捕获这两个请求,并在原始版本中比较它们


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

提示:

尝试fiddler捕获这两个请求,并在原始版本中比较它们


通过fiddler发送两个请求,并向我们显示结果。我猜您的请求格式不正确->404。谢谢@burnsi!!这很尴尬。。我应该为https配置fiddler,并在这里询问之前尝试。我的请求URI缺少“/”。当然是404。我太专注于语法,错过了打字错误。我感谢你的帮助,你的评论是正确的,并引导我找到我的问题。如果你把它作为一个答案,我会接受它。通过fiddler发送这两个请求,并向我们展示结果。我猜您的请求格式不正确->404。谢谢@burnsi!!这很尴尬。。我应该为https配置fiddler,并在这里询问之前尝试。我的请求URI缺少“/”。当然是404。我太专注于语法,错过了打字错误。我感谢你的帮助,你的评论是正确的,并引导我找到我的问题。如果你将其作为答案发布,我将接受。此答案有助于我在fiddler中配置HTTPS此答案有助于我在fiddler中配置HTTPS