我正在接收大量事件数据的界面,为另一个系统做好准备并通过基于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