У меня есть HTTP-заголовки, как указано ниже, можно ли преобразовать их в запрос curl. Как я могу это сделать?
POST http://something.org.in/cool HTTP/1.1
Host: something.org.in
Proxy-Connection: keep-alive
Content-Length: 13
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://something.org.in
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://something.org.in/nice
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: connect.sid=s%3AKFD08Azc-yU5nP3VRsPJXerwM4dj4yec.N6Ko3n9vWY15ghJzxZz7FyvZme9ERWANEFc%2Brz0mthU
Я не совсем уверен, что правильно понял вопрос, но так как он помечен как вопросы PHP, я предполагаю, что вы хотите выполнить такой же или аналогичный запрос в PHP с помощью curl.
В PHP вы можете использовать функцию curl_setopt () с аргументом CURLOPT_HTTPHEADER
указать заголовки HTTP-запроса. В этом случае третьим аргументом функции должен быть массив, содержащий (= все) заголовки.
Основной код может быть следующим:
<?php
// initialize curl handle
$ch = curl_init();
// set request URL
curl_setopt($ch, CURLOPT_URL, 'http://something.org.in/cool');
// We don't want to get the headers in the response, but just the content.
curl_setopt($ch, CURLOPT_HEADER, 0);
// It's a POST method request.
curl_setopt($ch, CURLOPT_POST, 1);
// set cookie
curl_setopt($ch, CURLOPT_COOKIE, 'connect.sid=s0X0P+0KFD08Azc-yU5nP3');
// Now set the HTTP request headers.
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Upgrade-Insecure-Requests: 1',
'Content-Type: application/x-www-form-urlencoded',
'Accept-Encoding: gzip, deflate',
'Accept-Language: en-US,en;q=0.8'
// ... and add more, if needed
));
// execute the request
curl_exec($ch);
?>
Любая обработка ошибок опущена для простоты.
Похожий запрос с curl
из командной строки можно создать так: (я опускаю некоторые заголовки, чтобы пример был короче.)
curl -X POST -H 'Accept: text/html,application/xhtml+xml,application/xml' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'Accept-Language: en-US,en;q=0.8' \
--cookie "connect.sid=s0X0P+0KFD08Azc-yU5nP3"-i 'http://something.org.in/cool'
С -X POST
Вы можете применить метод POST для запроса, и с -H 'Header: value'
Вы можете добавить заголовок и его значение. Это может повторяться несколько раз, если требуется более одного заголовка. --cookie
Опция явно устанавливает куки. Установка нескольких файлов cookie требует их разделения ;
например, как в --cookie "first=value;second=another"
,
Других решений пока нет …