Я исправил это сейчас.
аюсь поместить JSON в веб-сервис с помощью cURL, используя следующий код:
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, 'http://index.yolink.com/index/define?o=json&ak=APIKEY');
curl_setopt($ch, CURLOPT_HTTPHEADERS,array('Content-Type: application/json'));
$data = array(
'ignore-robots' => 'false',
'language' => 'english',
'crawl-delay' => '0',
'depth' => '3',
'root' => array('url' => 'http://bartleby.com/')
);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$result=curl_exec($ch);
var_dump($result);
Я получаю следующее взамен:
string (282) "HTTP / 1.1 200 OK Сервер: Apache-Coyote / 1.1 Access-Control-Allow-Origin: * Тип контента: текст / обычный Длина контента: 120 Дата: Пт, 18 марта 2011 19:03:23 GMT {"code": "error.indexdefinition.invalid", "message": "Недопустимое содержимое для / define. Ошибка: преждевременный конец файла .. "}"
я нашелэтот блог это, кажется, связано - кажется, что отправкаtext/plain
хотя я указалContentType
вCURLOPT_HTTPHEADERS
какapplication/json
, Но добавляяhttp_build_query
не помогло
Заранее благодарю за любую помощь!