2016-03-07 3 views
0

У меня проблема с перенаправлением. У меня есть запрос POST, который будет перенаправлен в запрос GET. Но Curl следует за перенаправлением с другим POST-запросом. Есть ли способ исправить это? Извините за мой английскийCURL - Как следовать перенаправлению GET из POST?

ответ

0

Обычно это регулируется с помощью настройки CURLOPT_POSTREDIR, если вы используете «легкие» завитки. Однако поведение по умолчанию в соответствии с documentation состоит в том, чтобы изменить POST на GET, если вы не сообщите об этом иначе. Возможно, где-то в своем коде вы используете следующую команду:

curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL); 

Вы должны вместо этого позвонить

curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_GET_ALL); 

Альтернативой является не следует перенаправлять на всех, а затем обработать его самостоятельно. Это немного сложнее, но позволяет вам контролировать больше. Эта команда подскажет, не следует ли переадресации.

curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 0L); 
+0

Я использую версию CURL, которая не поддерживает CURLOPT_POSTREDIR. Но что может вызвать HTTP 302? Мне нужно решить эту проблему, вызванную перенаправлением, – Vincy6

+0

Сайты используют перенаправления, это просто функция HTTP. Вряд ли вы можете так легко обойтись. –

+0

Эта опция была добавлена ​​в libcurl 7.19.1, если вы используете более старый libcurl, чем вам нужно обновить для большего количества причин, чем это ... –

Смежные вопросы