我无法理解我做错了什么。
下面是我的代码:
$message = "testing from the application.";
$mobile_number = ""; //hidden for security
$sender = ""; //hidden for security
$ch = curl_init(""); //hidden for security, http://ip
curl_setopt($ch, CURLOPT_URL, "api.php?username=&password=&number=$mobile_number&sender=$sender&type=0&message=$message");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
echo $output = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
curl_getinfo
返回0,$output
没有返回任何内容,但文档说如果请求成功,则$output
为1101。
我在邮递员中测试过,结果还可以。
答案 0 :(得分:1)
根据您的最终评论,由于问题是由于URL参数未被网址编码,最简单的方法是这样做我认为是这样的:
$params = array(
'message' => "testing from the application.",
'number' => "", //hidden
'sender' => "", //hidden
'username' => $username,
'password' => $password,
'type' => 0,
);
$url = 'api.php?'. http_build_query($params);
curl_setopt($ch, CURLOPT_URL, $url);
有关详细信息,请参阅http_build_query()
。它会安全地将数组编码为适合URL编码的HTTP POST请求或查询字符串参数的字符串。
当cURL
请求失败时,查看curl_getinfo()
返回的所有内容也很有帮助。
在这种情况下,我认为HTTP
代码可能是400
,因为请求不好。您也可以调用do echo curl_error($ch);
来获取人类可读的错误消息。