postman,浏览器测试接口正常,HttpClient 调用就报错

这篇具有很好参考价值的文章主要介绍了postman,浏览器测试接口正常,HttpClient 调用就报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一次奔溃的经历

事情是这样的:第三方提供了一个接口需要对接,我就对接了,测试环节的时候怎么都调不通,各种排查,各方人员都动员了起来,就是没有找到问题,下面把问题报错的原因呈上:

postman可以调用接口,httpclient访问不了,后端

就是报错 508 ,返回一个空的 Response body.

刚开始出现这个问题,我怀疑是不是我的代码哪里没有处理好呢? 检查了一遍没有发现什么问题。

返回 508 什么意思?

508 码表示服务器中断一个操作,因为它在处理具有“Depth: infinity”的请求时遇到了一个无限循环。508 码表示整个操作失败。

请求接口走的代理服务器,我方配置了一个代理服务器去访问接口,于是我就怀疑是不是我方 nginx 哪里做了限制,导致出现的问题呢?

我去找了我方运维询问相关问题,运维通过 curl 命令直接访问接口也是返回 508 ,于是我就断定是第三方的配置出了问题。

就在这时候我的同事用 postman 和浏览器测试说接口没问题,有返回值,惊呆了我,于是我就用 postman 和浏览器都测试了一遍,果然接口没有问题。

卧槽,第三方提供的接口是没有问题的,那就是我的问题喽。。。 我静下心来,重新捋了一遍代码,还是没发现有啥问题。

各方交战

我把接口的详细请求参数发给了第三方,第三方测试没有问题,第三方说让我方在检查一下,我和同事包括运维的同事都头大了,各种排查。

第三方说是我方的问题,我方认为是第三方的问题,问题陷入了僵局,没办法只能借助万能的互联网看看能不能解决相关问题。

我搜到了这样一个相关的问题:

RestTemplate请求第三方接口,返回508 ,postman请求没问题,浏览器访问也没问题,什么情况?

postman可以调用接口,httpclient访问不了,后端

我再次看了一下第三方给的接口文档,再次捋了一遍代码,毫无头绪。。。 这样这次的对接只能搁置下来,偶尔就过来尝试处理一下。

偶然的运气

postman 和浏览器测试都通过,httpclient 调用去出现问题,二者有什么区别呢? 浏览器访问了一下接口,使用 Charles 抓包工具进行抓包分析:

postman可以调用接口,httpclient访问不了,后端

尼玛浏览器访问接口有很多头部信息,估计是这里有猫腻。 就在这个时候一个同事也猜测可能是请求头部信息的问题,经过尝试问题得解: 是少了一个头部信息 User-Agent 头部参数。

User_Agent 是什么?

User-Agent是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。用较为普通的一点来说,是一种向访问网站提供你所使用的浏览器类型、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。UA字符串在每次浏览器 HTTP 请求时发送到服务器!

我尼玛,这个问题至此解决了,经过扯皮问题还是出现在第三方,第三方服务器进行了设置对该请求接口的头部信息进行了验证。

bug 解决的不容易,太耗精力了,折磨的想打人,还想哭。。。

本文由 mdnice 多平台发布文章来源地址https://www.toymoban.com/news/detail-788726.html

到了这里,关于postman,浏览器测试接口正常,HttpClient 调用就报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用selenium启动谷歌Chrome浏览器打开指定网站,页面空白,而使用其它浏览器手动打开该网站则正常

    在使用python实现自动化网络爬虫时,我使用到selenium来驱动谷歌Chrome浏览器来打开某一个网页,然后爬取数据,当使用Python中的selenium库驱动Chrome浏览器打开特定网站时,页面内容为空白,但在其他浏览器中手动访问该网站则显示正常。

    2024年02月07日
    浏览(42)
  • 浏览器请求导入postman

    简单三步 1. 复制请求 2.导入 3. send 1. 选择 复制- 复制为cURL(bash)  2. 打开postman 选择import - raw text - continue  然后点击  import 点击send        

    2024年02月13日
    浏览(34)
  • 【已解决】使用selenium启动谷歌Chrome浏览器打开指定网站,页面空白,而使用其它浏览器手动打开该网站则正常

    1、在使用python实现自动化网络爬虫时,我使用到selenium来驱动谷歌Chrome浏览器来打开某一个网页,然后爬取数据,代码如下:    2、但是当执行到driver.get(url)访问网站时,页面是空白的,如下所示,没有正常显示该网站的数据    print输出的网页html也只有如下数据: htmlhea

    2024年02月12日
    浏览(43)
  • 使用Postman拦截浏览器请求

    项目上线之后,难免会有BUG。在出现问题的时候,我们可能需要获取前端页面发送请求的数据,然后在测试环境发送相同的数据将问题复现。手动构建数据是挺麻烦的一件事,所以我们可以借助Postman在浏览器上的插件帮助拦截请求,获取发送的数据。 既然是基于Postman进行操

    2024年02月15日
    浏览(28)
  • 电脑正常登录QQ微信,但浏览器无法打开网页,这个你一定要学会!

    电脑能正常登录微信/QQ,但是浏览器无法打开网页的情况时有发生。掌握这三个方法,就能轻松解决问题! 首先 按Win+R , 输入CMD , 回车 输入ping baidu.com , 回车 ▲ 网络正常情况有回复 有【来自xxx的回复:字节=xx……】就说明网络是正常的 ▲ 网络异常情况 如果不通,就

    2024年02月04日
    浏览(40)
  • 【解决】uniapp使用video标签在浏览器调试正常,安卓真机、手机上显示小黑块,无法正常显示

    【问题】 uniapp中使用video标签展示视频,在浏览器展示正常,但是运行到安卓真机、或者手机上显示小黑块,无法正常显示 示例代码如下: 展示效果如下: 【解决】 不在 template 标签内直接使用 video 标签,而是使用 v-html 渲染html元素,绑定一个videoHtm方法,返回需要的html元

    2024年02月04日
    浏览(88)
  • 一键将浏览器请求导入到 Postman

    如果你想一键将浏览器请求导入到 Postman 中,可以使用以下两种方法: 方法一:使用 Postman 的“导入”功能 将浏览器中复制出来的 cURL 命令,打开 Postman 应用,点击左上角的“Import”按钮,选择“Import from Clipboard”,然后粘贴刚才保存的 cURL 命令,点击“Import”按钮。 Pos

    2024年02月08日
    浏览(32)
  • Postman抓包浏览器请求--傻瓜式操作

    postman安装步骤,自行百度教程 在postman首页,点击右下角【 捕获的请求和cookie】     按钮    1、输入端口号或使用默认端口号,2、点击启用代理按钮 注意:要抓包的浏览器已装postmanInterceptor插件,则可以辅助postman抓取http和https的请求;则不用在装SSL相关证书    

    2024年02月01日
    浏览(41)
  • 网络正常,“但”edge浏览器网页拒绝访问请“检查代理”,解决方案-DNS设置

    进行电脑大更新以后,本人在使用电脑时出现了这样的状况: 在网络上寻求许久,才找到解决办法,与大家分享一下: 首先打开右下角网络图标,点击“网络和Internet设置”; 选择“以太网”,点击“更改适配器选项”; 选择当前链接的网络适配器,我的是“WLAN”,右键点

    2024年02月11日
    浏览(59)
  • Postman模拟浏览器网页请求并获取网页数据

      本文介绍在浏览器中,获取网页中的某一个请求信息,并将其导入到 Postman 软件,并进行 API 请求测试的方法。    Postman 是一款流行的 API 开发和测试工具,它提供了一个用户友好的界面,用于创建、测试、调试和文档化 API 。本文就介绍一下这一工具的最基本用法——

    2024年04月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包