curl_init - php curl post json
¿Por qué Curl no envía mis encabezados en PHP? (1)
El siguiente código:
$ch = curl_init(''http://localhost/testweb/search.php'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
''Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'',
''Accept-Encoding gzip, deflate'',
''Accept-Language en-US,en;q=0.5'',
''Connection keep-alive'',
''SomeBull BeingIgnored'',
''Cookie CLASSICPAGE=off'',
''User-Agent Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0''
));
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
$body = substr($response, -$info[''download_content_length'']);
echo $body;
tiene la siguiente salida (php.exe mycurl.php):
Host: localhost
Accept: */*
User-Agent Mozilla/5.0 (Windows NT 5.1; rv: 16.0) Gecko/20100101 Firefox/16.0
El search.php en localhost:
error_reporting(0);
header("Content-Type: text/plain");
foreach (getallheaders() as $name => $value) {
echo "$name: $value/n";
}
Mi pregunta es: ¿qué pasó con los encabezados que establecí?
Los encabezados están en el formato:
Header: value
A su ejemplo le faltan dos puntos en cada uno de los encabezados. Simplemente ajústelo así:
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
''Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'',
''Accept-Encoding: gzip, deflate'',
''Accept-Language: en-US,en;q=0.5'',
''Connection: keep-alive'',
''SomeBull: BeingIgnored'',
''User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0''
)
);