我正在接收大量事件數據的界面,爲另一個系統做好準備並通過基於Web的API將其推送到系統中。使用cURL時參數會「丟失」
接收和處理數據的工作正常,但將它推入另一個系統失敗,當使用cURL。似乎來自查詢字符串的最後一個參數會丟失。
我如何知道?界面響應並告訴我缺少一個必需的參數。它似乎總是最後一個。
這是我建立的查詢字符串(簡稱位)
$URI = 'http://remote-interface-host/serviceurl?';
$querystring .= 'city='.urlencode(utf8_decode($town));
$querystring .= '&street='.urlencode(utf8_decode($street));
$querystring .= '&location='.urlencode(utf8_decode($location));
$querystring .= '&start='.$start;
$querystring .= '&end='.$end;
$querystring .= '&text='.urlencode(utf8_decode(trim($description)));
$querystring .= '&title='.urlencode(utf8_decode(trim($title)));
$querystring .= '&website='.urlencode(utf8_decode($website));
$textlanguage = '&languageid=1522908220065994400';
$querystring .= $textlanguage;
$fullcurl = $URI.$querystring;
$data = docurlcall($fullcurl);
docurlcall()
是非常簡單的,也從遠程接口
function docurlcall($url)
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 0,
CURLOPT_TIMEOUT => 10,
CURLOPT_URL => $url,
CURLOPT_POST => 1,
CURLOPT_USERAGENT => 'my-interface'
));
$result = json_decode(curl_exec($curl));
curl_close($curl);
return $result;
}
反饋是
{ "success":false, "message":"missing required parameter 'languageid'", }
據我所知,這應該是cURL的好用,所以我不明白爲什麼他放棄了最後一個參數。但也許這只是一個不同的問題的症狀。
任何想法可能是錯誤或失蹤?
注意旁邊:我被cURL卡住了,因爲外部接口的開發人員擔心數據可能會變得太大(爲了獲得更好的可讀性,我丟棄了圖像和更多信息),所以我必須做帶cURL的POST請求。
echo'$ querystring'並直接運行到您的瀏覽器並檢查它返回的結果! – Saty
這樣做很好,沒有問題或錯誤。 – flomei
設置'CURLOPT_RETURNTRANSFER => 1'並檢查 – Saty