Я работаю над интерфейсом, где я получаю целую кучу данных событий, готовлю его к другой системе и вставляю ее в систему через веб-интерфейс.
Получение и обработка данных работает нормально, но при нажатии этой функции в другую систему используется cURL. Похоже, что последний параметр из querystring теряется.
Откуда я знаю это? Интерфейс отвечает и говорит мне, что обязательный параметр отсутствует. Кажется, он всегда был последним.
Вот как я создаю querystring (сокращенно немного)
$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, потому что разработчики внешнего интерфейса опасаются, что данные могут стать слишком большими (я сбросил изображения и больше информации для лучшей читаемости) для запроса GET, поэтому я должен выполнить запрос POST с помощью cURL.