php+;curl发送带有字段的post请求
正在尝试向api发送post请求,以恢复图像 示例url:php+;curl发送带有字段的post请求,php,api,curl,Php,Api,Curl,正在尝试向api发送post请求,以恢复图像 示例url: https://providers.cloudsoftphone.com/lib/prettyqr/createQR.php?user=1003123&format=png&cloudid=asdasdasd&pass=123123123 上述url在浏览器中运行良好, api不关心请求是否为get/post 我的代码的结果总是“无效输入” 代码: 旁注:是否有办法调试请求以查看发送的内容?提供的URL不适用
https://providers.cloudsoftphone.com/lib/prettyqr/createQR.php?user=1003123&format=png&cloudid=asdasdasd&pass=123123123
上述url在浏览器中运行良好,api不关心请求是否为get/post 我的代码的结果总是“无效输入” 代码:
旁注:是否有办法调试请求以查看发送的内容?提供的URL不适用于
POST
请求。下面是结果截图(我尝试使用)
然而,它与GET
方法完美结合。因此,您可以继续使用GET请求方法生成二维码
我同意GET和POST方法相比并没有多大的安全性,但在您的例子中,当从curl请求时,用户不会知道这样的URL参数(userid,password)。因为curl
请求将从web服务器发送,而不是从客户端/用户的浏览器发送
稍后,您可以只输出从api获得的响应图像。您提供的URL采用
GET
request格式,因此,如果您直接在浏览器中粘贴该URL,则它将仅发出GET请求。但是在您的代码中,您似乎使用了POST
。是的,我提到它是为了清楚地表明API确实会在POST请求时返回图像。使用hurl.itOk进行了测试,但我尝试使用了advancerestclient
它无法处理POST
请求。仅适用于GET
请求其工作。@Log1c请再次检查,因为它对我工作正常?不工作,伙计。仅供参考,在测试POST时,不应在URL中传递参数。这是我的测试结果
$url='https://providers.cloudsoftphone.com/lib/prettyqr/createQR.php';
$u = rand();
$p = rand();
$fields = array(
'user'=> urlencode($u),
'pass'=> urlencode($p),
'format'=> urlencode('jpg'),
'cloudid' => urlencode('test')
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
curl_close($ch);
echo $output;