当前位置: 首页 > 知识库问答 >
问题:

HttpClient超时错误调用PostAsJsonAsync

闾丘昊然
2023-03-14

从HttpClient PostAsJsonAsync方法获取响应时遇到问题。我正在将StringContent数据传递给POST请求,但它返回禁止的(403)状态代码。

当我尝试添加默认请求头(注释的代码行)时,错误发生了变化,并返回超时问题:

{系统。网。http://http.WinHttpExcture(0x80072EE2):操作在System.运行时。ExceptionServices.ExceptionDispatchInfo.throw()at System.线程。任务。会合。GetResult()at System.网。http://http.WinHttpHandler.d__105。移动下一步

var content = new StringContent(JsonConvert.SerializeObject(contentBody), Encoding.UTF8, "application/json");

var client = new HttpClient();
client.BaseAddress = new Uri("https://www.example.com");
//client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

using (var httpResponse = await client.PostAsJsonAsync("api/details", content))
{
    if (httpResponse.Content != null)
    {
        var responseContent = await httpResponse.Content.ReadAsStringAsync();
    }
}

当我在Postman中尝试时,它返回了JSON数据。为什么它在代码中不起作用?有什么东西阻碍了我的联系吗?

共有1个答案

段阳夏
2023-03-14

BaseAddress属性需要以正斜杠作为后缀:

client.BaseAddress = new Uri("https://www.example.com/");
 类似资料:
  • 问题内容: 有没有办法为整个执行指定超时时间? 我尝试了以下方法: 它实际上可以正常工作,除非远程主机发送回数据(即使以一字节/秒的速度),也将永远读取!但是无论主机是否响应,我都希望在10秒内中断连接。 问题答案: 当前无法设置这种 最大请求持续时间 :基本上,您想说 我不在乎任何特定的请求阶段是否超时,但是整个请求的持续时间不得超过15秒 (例如) 。 最好的选择是运行一个单独的计时器,当计时

  • 在部署到vercel后,我的一个页面上出现了这个错误,在开发模式下一切正常。 我认为问题可能是我的fetch/API之一,因为它使用第一个fetch请求中的数据作为第二个fetch请求的URL。。。 我的所有其他页面都有不同的API/获取请求,可以正常工作。。。

  • 问题内容: 我有一个Web服务正在接受XML的POST方法。它工作正常,然后在某个随机的时刻,它无法与服务器通信,并抛出message,并抛出IOException 。后续调用工作正常。 当我打了一些电话然后将应用程序闲置大约10-15分钟时,它就会发生。在此之后我进行的第一个调用将返回此错误。 我尝试了几件事… 我像这样设置重试处理程序 但是此重试从未被调用过。(是的,我正在使用正确的insta

  • 问题内容: 我已经安装了Celery,并且正在尝试使用Celery First Steps Doc 对其进行测试。 我尝试将Redis和RabbitMQ都用作代理和后端,但无法获得结果: 每次,我都会收到此错误: 经纪人部分似乎工作得很好:当我运行这段代码时 我得到了(按预期) [2015-08-04 12:05:44,910:INFO / MainProcess]收到的任务:tasks.add

  • 我对Scala并不熟悉SBT,我正在尝试弄清楚新的IntelliJide。 已添加项目

  • 我有一个声明式客户端: 我已使用以下命令将客户端超时设置为30秒: 我随机得到: 这种令人讨厌的行为的原因是什么?