【问题标题】:Timeout while making POST request with no authentication C#在没有身份验证的情况下发出 POST 请求时超时 C#
【发布时间】:2020-02-21 07:28:06
【问题描述】:

我想向休息服务发出 POST 请求。没有身份验证,它只有两个自定义标头。我的代码如下。我收到错误消息:

mscorlib.dll 中出现“System.AggregateException”类型的异常,但未在用户代码中处理。

“连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接失败,因为连接的主机没有响应”

你能帮忙吗?代码有什么问题?

 HttpClient client = new HttpClient();
 client.DefaultRequestHeaders.Accept.Clear();
 client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 client.DefaultRequestHeaders.Add("id", "8888");
 client.DefaultRequestHeaders.Add("type", "CUSTOMER");
 Uri uri = new Uri(requestUri);
 var ob = new { id= "5", color= "pink" };
 var transferJson = JsonConvert.SerializeObject(ob);
 var content = new StringContent(transferJson, Encoding.UTF8, "application/json");
 HttpResponseMessage responseMessage = client.PostAsync(uri, content).Result;

【问题讨论】:

    标签: c# rest post httprequest httpclient


    【解决方案1】:

    您的代码本身看起来没有问题。错误消息表明请求遇到了超时,这意味着 HttpClient 会等待一段时间,如果服务器没有响应则终止。您是否尝试过 ping 服务器以确保它实际上已启动并运行?

    在这种情况下,您可以尝试增加 HttpClient 的超时值(参见此处https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.timeout?view=netframework-4.8)。

    此外,您可以尝试使用 Postman 等其他工具发送请求,以查看问题出在您的代码、参数(如超时)还是服务器本身。

    【讨论】:

      猜你喜欢
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 2022-01-03
      • 2017-06-01
      相关资源
      最近更新 更多