PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
new01
Отправлено: 05 Мая, 2014 - 20:13:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 301
Дата рег-ции: Июнь 2010  
Откуда: Челябинск


Помог: 1 раз(а)




Здравствуйте!

Вообщем есть сервис, который предоставляет API. Посылаю данные POST, использую curl.

Дело в том, что когда посылаю данные через форму просто, то всё ок, перехожу на страницу API, она мне ответ выдает человечески и понятно. НО! Когда делаю через CURL, то и вывожу страницу, получается следующее:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Moved Permanently
  3.  
  4. The document has moved here.
  5.  

Вот запроса через curl
PHP:
скопировать код в буфер обмена
  1.  
  2. $page="http://xxxxxxxxx";
  3.            $ch = curl_init($page);
  4.            curl_setopt($ch, CURLOPT_POST, 1);
  5.            # POST /forum/..
  6.            curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (бла бла бла..) ");
  7.            # User-Agent
  8.            $headers = array
  9.            (
  10.        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8',
  11.        'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
  12.        'Accept-Encoding: deflate',
  13.        'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
  14.           );
  15.                   curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
  16.                   # добавляем заголовков к нашему запросу. Чтоб смахивало на настоящих
  17.                   curl_setopt($ch, CURLOPT_REFERER, "http://php.su/forum/loginout.php");
  18.                   # Подделываем значение - откуда пришли данные.
  19.                   curl_setopt($ch, CURLOPT_POSTFIELDS, 'xxxxxxxxxxxxxxxxxxx');
  20.                   # post данные.
  21.                   # умная libcurl сама добавит заголовки
  22.                   # Content-Type: application/x-www-form-urlencoded и Content-Length: 71
  23.                   curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");  
  24.                   curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");  
  25.                  
  26.                   # Функции для обработки установливаемых форумом кук.
  27.                   # подробнее рассмотрим далее.
  28.                   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  29.                   # Убираем вывод данных в браузер. Пусть функция их возвращает а не выводит
  30.                
  31.                 $string=curl_exec($ch); // выполняем запрос curl
  32.            curl_close($ch);
  33.            echo $string;
  34.  


Вопросы:
1. Данные POST передаются сервису?
2. What are fuck? Что это значит за сообщение (да, я перевел) и как реагировать?


-----
new01
 
 Top
Мелкий Супермодератор
Отправлено: 05 Мая, 2014 - 20:48:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 11874
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 612 раз(а)




Во-первых, проверьте firebug'ом или ещё чем, что конкретно происходит при действии в браузере. Возможно это штатное поведение этого апи "запрос принят, результат получить тут"
Во-вторых, некоторым идиотам (честно, не знаю, как иначе назвать) приходит в голову мысль для API (sic!) сделать защиту от роботов.

Включите вывод заголовков сервера (CURLOPT_HEADER), будет понятно, что хотят.
Moved Permanently - это редирект, в заголовках написано, куда редирект, соответственно CURLOPT_FOLLOWLOCATION.


-----
PostgreSQL DBA
 
 Top
new01
Отправлено: 05 Мая, 2014 - 22:52:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 301
Дата рег-ции: Июнь 2010  
Откуда: Челябинск


Помог: 1 раз(а)




Мелкий, спасибо.
Ещё один из возможных вариантов решения добавьте www в Ваш урл Голливудская улыбка


-----
new01
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB