PHP Curl代码与原生Curl命令返回结果不一致问题求助
Curl转PHP代码后返回结果不一致
将一条Curl命令转换为PHP代码后,测试发现两者返回结果存在差异,具体情况如下:
- 原生Curl命令测试返回状态码401(未授权);
- 最初编写的PHP代码测试返回状态码400(错误请求);
- 修改PHP代码,将请求体通过
json_encode处理后,返回结果为空字符串(string(0) "")。
原生Curl命令
curl -X 'POST' \ 'https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/invoices/reporting/single' \ -H 'accept: application/json' \ -H 'accept-language: en' \ -H 'Clearance-Status: 0' \ -H 'Accept-Version: V2' \ -H 'Content-Type: application/json' \ -d '{ "invoiceHash": "PEx8bNFcEMEpHzUVvQntQI6ot8eFqTT/l59b+H1HqX4=", "uuid": "16e78469-64af-406d-9cfd-895e724198f0", "invoice": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLT" }'
最初版本PHP代码
<?php $url = "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/invoices/reporting/single"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $headers = array( "Accept: application/json", "Content-Type: application/json", 'Clearance-Status: 0' , 'Accept-Version: V2' , 'accept-language: en' , ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); $data = [ "invoiceHash" => "PEx8bNFcEMEpHzUVvQntQI6ot8eFqTT/l59b+H1HqX4=", "uuid" => "16e78469-64af-406d-9cfd-895e724198f0", "invoice"=>"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLT", ]; curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $resp = curl_exec($curl); var_dump ($resp); curl_close($curl); ?>
修改后版本PHP代码
<?php $url = "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/invoices/reporting/single"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $headers = array( "Accept: application/json", "Content-Type: application/json", 'Clearance-Status: 0' , 'Accept-Version: V2' , 'accept-language: en' , ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); $data = array("invoiceHash" => "PEx8bNFcEMEpHzUVvQntQI6ot8eFqTT/l59b+H1HqX4=", "uuid" => "16e78469-64af-406d-9cfd-895e724198f0" , "invoice" => "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLT"); $data = json_encode($data); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $resp = curl_exec($curl); var_dump ($resp); curl_close($curl); ?>
内容的提问来源于stack exchange,提问作者Hussain Alslais
相关产品推荐
相关产品推荐

