postman请求接口数据正常返回,curl请求无返回,打印curl_error,获取到报错信息:HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
解决方法:
一、在发起请求前设置请求使用的http版本协议:curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

二:服务器(widows)配置http版本为1.1
在服务器上的注册表里禁用HTTP/2。
1.如何进入注册表?右键单击"开始", 然后选择"运行", 在"打开:“框中键入 regedit,然后选择"确定”。
2.进入以下路径:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
3.在该注册表项中添加 2 个新 REG_DWORD 值:EnableHttp2Tls 和 EnableHttp2Cleartext。
4.将两个值设置为 0。
EnableHttp2Tls REG_DWORD 0
EnableHttp2Cleartext REG_DWORD 0

(由于公司的项目需要请求多家服务器,所以使用的方法一。)

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐