json google search curl прокси php

#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