php + curl用字段发送帖子请求

时间:2014-04-24 11:50:20

标签: php api curl

尝试向发布请求,以获取图像。

示例网址:

https://providers.cloudsoftphone.com/lib/prettyqr/createQR.php?user=1003123&format=png&cloudid=asdasdasd&pass=123123123 

以上网址在浏览器中正常工作,
如果请求是get / post,则api不在乎,

我的代码结果总是'无效输入'

代码:

$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;

旁注:有没有办法调试请求以查看发送的内容?

1 个答案:

答案 0 :(得分:1)

提供的网址不适用于POST请求。这是截图(我尝试使用Advance Rest Client

enter image description here

然而,它与GET方法完美配合。因此,您可以继续使用GET请求方法生成QR码。

我同意GET与POST方法相比并不安全,但在你的情况下,从curl用户请求时不会了解这些URL参数(userid,password)。 因为curl请求将从您的网络服务器发送,而不是从客户端/用户的浏览器发送。

稍后您可以输出从api获得的响应图像。