[英]Curl POST issue with php
我有一個短信服務器,可以完美地處理像這樣的 curl 請求
curl -X POST http://local_IP/raspisms/api/scheduled/ -H 'X-Api-Key: XXXXXXXXXXXXXXXXXXXX' -d 'text=My%20Message' -d 'numbers=06XXXXXXXX'
我成功運行了像這樣的 php 代碼
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://local_IP/raspisms/api/scheduled/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "text=My%Message&numbers=06XXXXXXXX");
$headers = array();
$headers[] = 'X-Api-Key: XXXXXXXXXXXXXXXX';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
我像這樣傳遞消息變量沒問題
$text = "My Message";
define('POSTVARS', 'numbers=06XXXXXXXX&text=');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://local_IP/raspisms/api/scheduled/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, POSTVARS.$text);
$headers = array();
$headers[] = 'X-Api-Key: XXXXXXXXXXXX';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
我堅持傳遞消息和電話號碼變量。 我已經嘗試了 array() 方式
$data = array("text"=>$messages,
"numbers"=>$tel
);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
對我來說似乎是正確的,但不起作用
我也試過
curl_setopt($ch, CURLOPT_POSTFIELDS, "text={$message}&numbers={$tel}");
我嘗試使用雙引號{\"text\":\"$message\"}
的變量
也試過這個$url = 'http://api.pushingbox.com/pushingbox?devid=vB9C6311111098CB&sensor='. $delta. '&temperature='. $temp;
$url = 'http://api.pushingbox.com/pushingbox?devid=vB9C6311111098CB&sensor='. $delta. '&temperature='. $temp;
我不知道我可以嘗試解決什么(我沒有收到任何錯誤)
用define('POSTVARS', 'text='.$text.'&numbers='.$tel);
我回顯 POSTVAR 以獲取text=MyMessage&numbers=06XXXXXXXX
看起來這個解決方案正在運行,但 api “拒絕”它
curl_setopt($ch, CURLOPT_POSTFIELDS, POSTVARS);
這被拒絕並且curl_setopt($ch, CURLOPT_POSTFIELDS, "text=MyMessage&numbers=06XXXXXXXX");
哪個是發送的,有什么區別?
問題是它無法處理本地電話號碼(06XXXXXXXX),但國際格式沒有問題(+33),所以變量必須以“%2B33XXXXXXXX”開頭,並且工作正常
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.