Отправка cookie в запросе GET в PHP

#php #cookies #curl

#php #файлы cookie #curl

Вопрос:

У меня возникли некоторые проблемы с приложением, которое я разрабатываю. Я делаю запрос GET на URL-адрес, чтобы получить XML-файл. Поскольку это большой файл, он будет кэшироваться, по крайней мере, 1 месяц, поскольку он не сильно меняется.

Я легко смоделировал запрос с помощью Python, потому что единственное обязательное условие — иметь cookie, который страница назначает вам, как только вы заходите на страницу.

Вот код на Python:

 # -*- coding: utf-8 -*-
import requests

cookies = requests.get("http://www.someweb.com:9005/someDIR/index.jspx").cookies
data = requests.get("http://www.someweb.com:9005/someDIR/Results?op=lpamp;ls=Allamp;t=0.41461605788208544", cookies=cookies).content
print data
 

Я пытался получать и отправлять cookie с помощью cURL в PHP, но я не могу этого сделать. Какие-либо подсказки?

Комментарии:

1. Удален тег PHP и добавлен Python

2. Хммм редактирование назад, так как я пытаюсь сделать это на PHP, как я уже достиг с помощью Python

3. Пожалуйста, прочитайте вопрос. Я говорю, что могу сделать это с помощью Python, но не могу сделать это с помощью PHP и запросить помощь, поскольку я не знаю, как я могу получить cookie со страницы.

Ответ №1:

Это должно сработать:

 <?php

$ckfile = tempnam ("/tmp", "CURLCOOKIE");

$ch = curl_init ("http://www.someweb.com:9005/someDIR/index.jspx");
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);

$ch = curl_init ("http://www.someweb.com:9005/someDIR/Results?op=lpamp;ls=Allamp;t=0.41461605788208544");
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);

echo $output;

?>
 

Комментарии:

1. И это так! Большое вам спасибо, вы спасаете жизнь: D