php+;curl发送带有字段的post请求

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不适用

正在尝试向api发送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;