c# - 在没有身份验证的情况下发出 POST 请求时超时 C#
问题描述
我想向休息服务发出 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;
解决方案
您的代码本身看起来没有问题。错误消息表明请求遇到了超时,这意味着 HttpClient 会等待一段时间,如果服务器没有响应则终止。您是否尝试过 ping 服务器以确保它实际上已启动并正在运行?
在这种情况下,您可以尝试增加 HttpClient 的超时值(请参阅此处https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.timeout?view=netframework- 4.8 )。
此外,您可以尝试使用 Postman 等其他工具发送请求,以查看问题出在您的代码、参数(如超时)还是服务器本身。
推荐阅读
- html - 在 html textarea 标签中自动占用 4 个空格
- r - 如何训练具有多个不同长度向量的 SOM?(使用 R 包 kohonen 或其他)
- google-maps - 谷歌地图:NotLoadingAPIFromGoogleMapsError Angular
- flutter - flutter bloc package yeild 在状态管理中不起作用
- angular-material2 - OverlayContainer 与 FullscreenOverlayContainer
- angular - 如何在不刷新页面的情况下自动更新离子列表上的数据
- django - Django Rest Framework 断言错误:缺少 Meta.model 属性
- reactjs - 材质 UI 选择组件未选择输入值
- python - 运行我的代码时出现奇怪的“FileNotFoundError”
- java - Groovy/Java 中有什么方法可以识别调用静态方法的子类吗?