#php #json #curl
#php #json #curl
Вопрос:
В настоящее время я сталкиваюсь с проблемой, касающейся поиска Google, curl и json.
Прежде всего я хотел бы показать вам код, который у меня уже есть:http://pastebin.com/LZzDZvHC
Позвольте мне кое-что объяснить по этому поводу:
- Я не показываю ключ, который я получил от Google
- $data — это сообщение, которое я получаю из отправленной формы
- ip — это ip пользователя
- $url, очевидно, является URL-адресом запроса ajax от googleapps
итак, если я распечатаю $ url и помещу его в свой браузер, я получу обратно приятный JSON — работает отлично. Я полагаю, вы уже можете догадаться, в чем проблема.
После этих объявлений я запускаю curl.
Я получаю что-то обратно и хочу преобразовать json в массив.
ИТАК, вот в чем проблема: я не получаю JSON обратно, я получаю сообщение об ошибке.
Говоря:
400. Это ошибка. Ваш клиент отправил неверно сформированный или незаконный запрос. Это все, что мы знаем.
С красивым логотипом Google поверх него.
Итак, я попытался поместить пользовательский агент в мой запрос curl -> также не работает.
Не беспокойтесь о моем json_decode () — я установил и протестировал его, и он работает нормально! ТАКИМ образом, здесь нет проблем.
Когда я получаю это сообщение об ошибке, я, очевидно, получаю «NULL» из var_dump();
ЕСЛИ я не установлю для [assoc] значение true, мой браузер даже не показывает мой веб-сайт. (http://www.php.net/manual/en/function.json-decode.php )
Теперь, пожалуйста, взгляните на документ от Google:http://code.google.com/apis/websearch/docs / прокрутите вниз до Php Access
Я мог бы предположить, что это проблема не только с поиском, но и с другими сервисами Google, поскольку мне кажется, что это ограничение, поскольку мой запрос curl поступает с сервера.
Я надеюсь, что у кого-нибудь есть идея, как преодолеть эту проблему, потому что я хотел бы ее использовать.
Комментарии:
1. Каков результат
print $url;
? Это выглядит правильно? Возможно, вам потребуется urlencode значений параметров… (Я вижу хороший ответ JSON при открытии ajax.googleapis.com/ajax/services/search /… )2. невероятно — в этом и заключалась проблема. Я думаю, я просто думал усложнить. Большое вам спасибо!
Ответ №1:
Каков результат print $url;
? Это выглядит правильно? Возможно, вам потребуется urlencode значений параметров…
Я вижу хороший ответ в формате JSON при открытии https://ajax.googleapis.com/ajax/services/search/web?v=1.0amp;q=oeleamp;key=boeleamp;userip=12.34.6.78