Кто-нибудь испытывал несоответствия в запросе скручивания? - PullRequest
0 голосов
/ 19 марта 2010

Я пытаюсь запросить URL-адрес, но он терпит неудачу, и когда я изменяю дамп результата curl exec, он возвращает false.

http://mydomain.com:8807/getstate/?zipcode=22311&field=statecode

В браузере я могу получить к нему доступ, и он возвращает правильное тело содержимого HTTP, тип содержимого - text / html.

Если я поменяю его на:

http://mydomain.com:8807/getstate/?zipcode=22311&field=state

Это тот же сервис REST, за исключением того, что значение параметра отличается, мой curl работает нормально. Как это могло быть?

Я не делаю несколько запросов, я делаю только один экземпляр ..

$url = 'http://mydomain.com:8807/getstate/?zipcode=22311&field=state';

Это тот же сервис REST, за исключением того, что значение параметра отличается, мой curl работает нормально. Как это могло быть?

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
$request = curl_exec( $ch );
var_dump($request);

Я чертовски уверен, что это не опечатка , не могу придумать причину. Он возвращает bool(false) для кода состояния, но возвращает правильную вещь для состояния.

Обновление: Похоже, что заголовки ответа неверны - браузер снисходительный и отображает страницу независимо от неправильных заголовков (или их отсутствия).

Ответы [ 2 ]

1 голос
/ 19 марта 2010

Попробуйте установить тот же пользовательский агент браузера в Curl, прежде чем делать запрос ...

если он работает с браузером, он должен работать таким образом.

1 голос
/ 19 марта 2010

Вы что-то упустили. Включите отладку curl, чтобы узнать больше curl_setopt($ch, CURLOPT_VERBOSE, true); Также посмотрите, что возвращается в firebug , и используйте fiddler , чтобы помочь отладке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...