Ошибка с cURL - «Не удалось разрешить хост: www.bbb.org (; Нет записи данных запрошенного типа» - PullRequest
0 голосов
/ 19 июля 2010

Я пытаюсь получить доступ к данным http://www.bbb.org/us/Find-Business-Reviews/ с помощью cURL.Теперь я использовал HTTPFox, чтобы посмотреть, какие данные отправляет этот сайт, и, соответственно, создал массив для «POST» на странице.Но у меня возникла проблема с доступом к странице 2,3,4,5 ...

Вот массив -

$array = Array();
 $array['__EVENTTARGET'] = 'ctl12$gc1$s$gridResults$ctl23$pagerLinkButton2';
 $array['__EVENTARGUMENT'] = '';
 $array['__LASTFOCUS'] = '';
 $array['__VIEWSTATEFIELDCOUNT'] = 6;
 $array['__VIEWSTATE']  = $View_state;
 $array['__VIEWSTATE1'] = $View_state1;
 $array['__VIEWSTATE2'] = $View_state2;
 $array['__VIEWSTATE3'] = $View_state3;
 $array['__VIEWSTATE4'] = $View_state4;
 $array['__VIEWSTATE5'] = $View_state5;
 $array['ctl12$qn$quickSearch'] = "";
 $array['ctl12$qn$TextBoxWatermarkExtender1_ClientState'] = "";
 $array['ctl12$gc1$s$txtSearch'] = "tax";
 $array['ctl12$gc1$s$CityTextBox'] = "";
 $array['ctl12$gc1$s$ddlState'] = "";
 $array['ctl12$gc1$s$ZipTextBox'] = 10292; 
 $array['ctl12$gc1$s$ddlSort'] = "SCORE DESC";

Но я всегда получаю одну и ту же ошибку -

"Не удалось разрешить хост: www.bbb.org (; Нет записи данных запрошенного типа"

Вот функция cURL, которую я использую

function cURL($url, $header=NULL, $p=NULL) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, $header);
        curl_setopt($ch, CURLOPT_NOBODY, $header);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        if ($p) {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
        }
        $result = curl_exec($ch);
        if ($result) {
            return $result;
        } else {
            return curl_error($ch);
        }
        curl_close($ch);
    }

Ответы [ 2 ]

2 голосов
/ 19 июля 2010

Вы не видите ничего плохого в URL, указанном здесь?:)

Could not resolve host: www.bbb.org(;
0 голосов
/ 19 июля 2010

Возможно, это не имеет отношения к вашей проблеме, но:

        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POST, 1);

является дублирующим.Установив CURLOPT_POST, вы уже сообщаете curl, что делаете сообщение.CUSTOMREQUEST предназначен для выполнения необычных HTTP-запросов, таких как 'HEAD', для которых не существует стандартного вызова функции CURL.

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