当前位置: 首页 > wzjs >正文

网站建设上传宝贝xamp爱站网排行榜

网站建设上传宝贝xamp,爱站网排行榜,wordpress跳转外链,做博客网站什么空间好问题 在Postman里可成功执行的POST请求: 找到Postman的Code 因为cURL基本上算是行业标准,所以Postman默认选中cURL,支持切换不同的开发语言: 点击上图右上角的复制按钮,得到cURL脚本。 Windows 11家庭版&#xff…

问题

在Postman里可成功执行的POST请求:
在这里插入图片描述
找到Postman的Code
在这里插入图片描述
因为cURL基本上算是行业标准,所以Postman默认选中cURL,支持切换不同的开发语言:
在这里插入图片描述
点击上图右上角的复制按钮,得到cURL脚本。

Windows 11家庭版,打开Git Bash客户端,版本为:
git version 2.47.1.windows.1
在这里插入图片描述
执行上述cURL脚本异常:
在这里插入图片描述
报错信息:

{"code":400,"msg":"JSON parse error: Invalid UTF-8 start byte 0xb4; nested exception is com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 start byte 0xb4\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 3, column: 18]"}

分析

根据上面几行简短的报错信息,提取几个关键内容:

  • code=400:表明这是客户端异常,此处的客户端是Git Bash;
  • JsonParseException和StreamUtils:表明服务端确实有接收到客户端提交的请求,要不然客户端也无法得知Jackson框架里的类JsonParseException,当然也无法得知Spring框架里的StreamUtils工具类;
  • 报错原因是非法JSON:JSON parse error
  • 编码异常:Invalid UTF-8 start byte 0xb4

分析起来,看起来头头是道,怎么解决问题呢?

排查

遇到问题时,还是习惯性将问题抛给ChatGPT,结果这次是真的全程被ChatGPT的胡言乱语给糊弄,浪费不少时间。
在这里插入图片描述
一一尝试:

  • 很明确是小写双引号,不是大写双引号;
  • 将上述cURL脚本使用txt文件保存,并保存为不带BOM的格式,没有解决问题;
    在这里插入图片描述
  • 报错提示是第三行line: 3, column: 18,好像是min_score字段,去掉引号试试,还是报错:
    在这里插入图片描述
  • --data-binary还是报错:
    在这里插入图片描述

方法一

反复尝试+试错,浪费不少时间,ChatGPT终于给出一个可行的解决方案:
在这里插入图片描述
也就是在Git Bash执行的目录下,新增一个payload.json文件,内容就是POST请求的requestBody:

{"retriever_type": "TEXT","question": "大模型技术如何帮助数据中心实现高效减碳?","min_score": "0.2","max_results": "10"
}

然后将命令:

--data '{"retriever_type": "TEXT","question": "大模型技术如何帮助数据中心实现高效减碳?","min_score": "0.2","max_results": "10"
}'

修改为(其他部分不变):--data @payload.json

执行效果:
在这里插入图片描述

方法二

为了执行一个在Postman可以成功执行的cURL脚本,我需要另存为一个JSON文件,感觉非常反人类。于是继续追问ChatGPT,给出一个不使用文件的方法:

printf '%s' '{"retriever_type": "TEXT","question": "大模型技术如何帮助数据中心实现高效减碳?","min_score": "0.2","max_results": "10"
}' | curl --location 'http://api.test.tesla.com/rag_online/rag/retrieval' \--header 'tesla-token: 1111222233334444' \--header 'Content-Type: application/json' \--data @-

和上面的解决方法非常类似。

GET

Git Bash客户端下执行cURL GET命令没有问题,只是在执行POST命令才有问题。
在这里插入图片描述

CMD/PowerShell

既然Git Bash客户端不能用,于是将注意力放在其他客户端。

打开cmd或PowerShell,粘帖cURL脚本,结果给我提示:您将粘贴包含多行的文本。如果将此文本粘贴到 shell 中,则可能会导致命令意外执行。是否继续?
在这里插入图片描述
如上图所示,CMD和PowerShell无法识别多行cURL脚本,会拆分成多行,当然会执行失败。

怎么解决?

ChatGPT又让我失望
在这里插入图片描述
在这里插入图片描述
并不能解决问题。

Google找到一篇类似的报错Jackson JSON parser invalid utf-8 start byte。

TODO:未解决。

Mac

上述cURL脚本在同事的Mac开发机上(使用的终端未知),可执行成功。

解决方案

Git Bash

如果是GET请求,直接可使用Git Bash。但是对于POST请求,如果坚持要使用Git Bash客户端,有两种方法:

  • 使用文件
curl --location 'http://api.test.tesla.com/rag_online/rag/retrieval' \
--header 'tesla-token: 1111222233334444' \
--header 'Content-Type: application/json' \
--data @payload.json
  • 使用管道符
printf '%s' '{"retriever_type": "TEXT","question": "大模型技术如何帮助数据中心实现高效减碳?","min_score": "0.2","max_results": "10"
}' | curl --location 'http://api.test.tesla.com/rag_online/rag/retrieval' \--header 'ecmas-token: 1111222233334444' \--header 'Content-Type: application/json' \--data @-

在这里插入图片描述

Mac

Mac比Windows强,受开发者青睐,不是没有原因的。

WSL

Windows 8不知道什么时候开始支持WSL,另外貌似有不少问题,Windows 10/11好像也不是一开始就支持WSL的。

总而言之,如果可以的话,建议升级Windows版本,安装WSL,比CMD、PowerShell功能强大:
在这里插入图片描述
使用WSL可执行多行cURL脚本。当然,WSL是一个Ubuntu系统,默认自带cURL命令。

关于WSL,参考我写的另一篇Windows 10/11安装使用WSL。

参考

  • ChatGPT
http://www.dtcms.com/wzjs/362822.html

相关文章:

  • 合肥做微网站网络推广网站公司
  • 国外做的比较的ppt网站有哪些方面免费python在线网站
  • 网站制作 招聘seo网站推广软件
  • 荆州市做网站的国际大新闻最新消息
  • 怎么形容网站做的好怎么做优化
  • 做下载网站有哪些建网站软件工具
  • 网站制作需要哪些软件成人专业技能培训机构
  • 网站建设的进度杭州seo整站优化
  • 在线做网站午夜伦理长沙网络推广服务
  • 教学网站建设论文如何做网站搜索引擎优化
  • 微网站开发项目合作协议seo的优缺点
  • 五月色做受网站百度网站入口链接
  • 北仑网站建设网站aso优化
  • 江津网站建设方案发帖百度秒收录网站分享
  • 如何做好宣传推广长沙seo搜索
  • 娄底做网站东莞网站优化
  • 盐城市网站建设公司百度搜索引擎的优缺点
  • 邢台提供网站建设公司电话营销型企业网站案例
  • 广州成亿网络如何对一个网站进行seo
  • 怎么做网站转让机制 银行账户对接网站排名top排行榜
  • 做网站用国内还是国外的vpsseo兼职平台
  • 网站 后台 设计病毒营销案例
  • 网站建设 技术镇江网站seo
  • 怎么做网站步骤免费的东莞有哪些做推广的网站
  • 学校建设服务网网站建设方案项目书网站综合查询工具
  • 做网站和程序员哪个好点哪里有免费的网站推广
  • 旅游网站开发项目策划书seo的五个步骤
  • IIS和wordpressseo培训学校
  • 做网站用sql和mysql常见的网站推广方式有哪些
  • vue快速搭建网站bt磁力猪