PHP - заголовки не устанавливаются при использовании cURL - PullRequest
1 голос
/ 19 октября 2011

При использовании cURL для доступа к файлу он игнорирует установленные заголовки в указанном файле. Когда я получаю доступ к одному и тому же файлу напрямую через браузер без cURL, он работает и заголовки установлены правильно. Кто-нибудь знает, почему это так и как мне обойти это?

Я пишу API, и мне нужно установить ответы HTTP-заголовка в веб-службе, а не в файле, который используется для подключения к файлу через cURL. Надеюсь, что это имеет смысл.

Большое спасибо заранее.

Ответы [ 3 ]

1 голос
/ 19 октября 2011

curl_setopt($ch, CURLOPT_HEADER, <true or false>);

может вам помочь.

Или, если хотите точно указать заголовок http,

curl_setopt($ch, CURLOPT_HTTPHEADER,array(<header parameters>));

было бы решением.

1 голос
/ 19 октября 2011

Поскольку вы используете CURL, попробуйте это как ваш пользовательский агент

curl_setopt($c_link, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");

или

curl_setopt($c_link, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");

Вы также можете скопировать заголовки из Firefox, которые могут выглядеть следующим образом

$header = "Accept: text/xml,application/xml,application/xhtml+xml,";
  $header = "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  $header = "Cache-Control: max-age=0";
  $header = "Connection: keep-alive";
  $header = "Keep-Alive: 300";
  $header = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
  $header = "Accept-Language: en-us,en;q=0.5";
  $header = "Pragma: ";
0 голосов
/ 19 октября 2011

Я тебе помогу

//open connection
$ch = curl_init();


//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,"URL");
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch,CURLOPT_HTTPHEADER, array('newVar:newValue','Content-type: text/plain', 'Content-length: 100')); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 

//execute post
ob_clean();
$result = curl_exec($ch);
echo $result;
curl_close($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...