#php #curl #mailchimp #mailchimp-api-v3.0
#php #curl #mailchimp #mailchimp-api-v3.0
Вопрос:
После выполнения пакетного запроса MailChimp API v3 он возвращает URL-адрес a .tar.gz файл с ответом.
При копировании / вставке URL-адреса в адресное поле браузера файл загружается мгновенно.
Но при попытке загрузить этот файл с помощью PHP cURL ответ «Отказано в доступе».
Это мой скрипт PHP cURL:
$_curl = curl_init();
curl_setopt_array($_curl, array(
CURLOPT_URL => $_GET['responseUrl'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => ''
));
$_response = curl_exec($_curl);
curl_close($_curl);
echo $_response;
Это ответ (в виде строки):
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>___someRequestId___</RequestId>
<HostId>___someHostId___</HostId>
</Error>
Попытка запроса cURL из командной строки curl -v https://...
возвращает:
[1] 54284
[2] 54285
[2] Done Expires=1475609534
* Trying 54.231.40.155...
* Connected to mailchimp-api-batch.s3.amazonaws.com (54.231.40.155) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: *.s3.amazonaws.com
* Server certificate: DigiCert Baltimore CA-2 G2
* Server certificate: Baltimore CyberTrust Root
> GET /c1b0e9e42e-response.tar.gz?AWSAccessKeyId=AKIAJWOH5BECJQZIEWNQ HTTP/1.1
> Host: mailchimp-api-batch.s3.amazonaws.com
> User-Agent: curl/7.49.1
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< x-amz-request-id: E15A53E1C3223996
< x-amz-id-2: UlcIl/cpOwDL9glkG7aho7HEpbskm8f/V56U71yfZWyefyALUHW0bvLFU5iRGiAFb t2fx/77Fo=
< Content-Type: application/xml
< Transfer-Encoding: chunked
< Date: Tue, 04 Oct 2016 19:35:19 GMT
< Server: AmazonS3
<
<?xml version="1.0" encoding="UTF-8"?>
* Connection #0 to host mailchimp-api-batch.s3.amazonaws.com left intact
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>E15A53E1C3223996</RequestId><HostId>UlcIl/cpOwDL9glkG7aho7HEpbskm8f/V56U71yfZWyefyALUHW0bvLFU5iRGiAFb t2fx/77Fo=</HostId></Error>
Что не так с запросом cURL?
Комментарии:
1. В вашем браузере есть файлы cookie MailChimp? Когда вы очищаете файлы cookie и вводите URL-адрес, файл все еще загружается?
2. Я запустил пакет в Chrome и ввел URL-адрес в Opera в закрытом окне после очистки всей истории. Загрузка сработала.