#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