ЗАВИХРЕНИЕ не следует за 301 Перенаправлением, что я должен сделать?

Я использую ВИХРЕВОЙ API C++ для получения кавычек от финансового API Yahoo. Вихревой API и мой код, кажется, хорошо работают, однако я добираюсь "301" сообщение перенаправления, когда я говорю ЗАВИХРЕНИЮ посещать URL, что я хочу. Как я могу заставить ЗАВИХРЕНИЕ следовать до этого 301 перенаправления и получать данные, которые я хочу?

Вот URL, который я использую:

http://download.finance.yahoo.com/d/quotes.csv?e=.csv&s=WSF,WSH&f=b2b3s

Вот ответ, который я получаю:

<HEAD><TITLE>Redirect</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black">
<FONT FACE="Helvetica,Arial"><B>
 "<em>http://download.finance.yahoo.com/d/quotes.csv?e=.csv&s=WSF,WSH,WSM,WSO,WST,WTI,WTM,WTR,WTS,WTU,WTW,WU,WWE,WWW,WX,WXS,WY,WYN,X,XAA,XCJ,XCO,XEC,XEL,XEL-A,XEL-E,XFB,XFD,XFH,XFJ,XFP,XFR,XIN,XJT,XKE,XKK,XKN,XKO,XL,XL-Y,XOM,XRM,XRX,XVF,XVG,Y,YGE,YPF,YSI,YUM,YZC,ZB-A,ZB-B,ZB-C,ZEP,ZF,ZLC,ZMH,ZNH,ZQK,ZTR,ZZ,ZZC&f=b2b3ccd1d2ghjkk2k3l2l3mm2m3m4m5m6m7m8opst7vw</em>".<p></B></FONT>

<!-- default "Redirect" response (301) -->
</BODY>

Вот является мое ЗАВИХРЕНИЕ init опциями

CURL *eh = curl_easy_init();

curl_easy_setopt(eh, CURLOPT_WRITEFUNCTION, cb);
curl_easy_setopt(eh, CURLOPT_HEADER, 0L);
curl_easy_setopt(eh, CURLOPT_URL, url);
curl_easy_setopt(eh, CURLOPT_PRIVATE, url);
curl_easy_setopt(eh, CURLOPT_VERBOSE, 0L);

curl_multi_add_handle(cm, eh);

Я не отправил свой код, поскольку он все работает, мне просто нужен общий метод выполнения woth 301's с ЗАВИХРЕНИЕМ.

10
задан MichaelICE 4 July 2010 в 15:14
поделиться

1 ответ

В мире PHP параметр называется CURLOPT_FOLLOWLOCATION . Я предполагаю, что имена констант стандартизированы и взяты из одного файла заголовка, так что это должно сработать для вас.

curl_easy_setopt(eh, CURLOPT_FOLLOWLOCATION, 1); 

(или любое другое «логическое истинное значение» в этом контексте.)

В качестве альтернативы, при получении кода состояния 30x вы можете вручную проанализировать заголовок Location на предмет нового адрес. Очевидно, однако, что вариант «следить за местоположением» намного проще, так как не требует второго запроса.

14
ответ дан 3 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: