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
(由于公司的项目需要请求多家服务器,所以使用的方法一。)