[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: curl send file post php<5.3
Страницы: 1, 2
Kusss
а какой url отсылаешь ($uri) ?
ну и надеюсь это условие вы тоже соблюдаете ?
Цитата
При этом необходимо помнить, что в каждом запросе к сервису необходимо в виде заголовка HTTP запроса (X-Auth-Token) передавать полученный токен. Помимо этого, необходимо  в заголовке X-Auth-User  передавать закодированный (base64)  email пользователя, для которого был получен TGT (более подробно смотри описание API "Авторизация")
walerus
Kusss
Да как то все мутно ТС рассказывает, авторизации в топике нет(может она и есть, но нам не сказали), про токены как ты правильно подметил ТС тоже промолчал, "полный" скрипт так же отсутствует, вообще не понятно что и куда у него подставляется отсылается sad.gif

DarkGuy
Цитата
Вернул то же самое
не может он вернуть тоже самое, у него свои "ответы" не похожие на то, что ты прислал.
DarkGuy
Цитата (Kusss @ 2.06.2017 - 08:03)
а какой url отсылаешь ($uri) ?
ну и надеюсь это условие вы тоже соблюдаете ?
Цитата
При этом необходимо помнить, что в каждом запросе к сервису необходимо в виде заголовка HTTP запроса (X-Auth-Token) передавать полученный токен. Помимо этого, необходимо  в заголовке X-Auth-User  передавать закодированный (base64)  email пользователя, для которого был получен TGT (более подробно смотри описание API "Авторизация")

Условия отсылки (URL тот) Условия соблюдаю, все остальные методы работают на отлично
DarkGuy
Цитата (walerus @ 2.06.2017 - 08:10)
Kusss
Да как то все мутно ТС рассказывает, авторизации в топике нет(может она и есть, но нам не сказали), про токены как ты правильно подметил ТС тоже промолчал, "полный" скрипт так же отсутствует, вообще не понятно что и куда у него подставляется отсылается  :(

DarkGuy
Цитата
Вернул то же самое
не может он вернуть тоже самое, у него свои "ответы" не похожие на то, что ты прислал.

с токнами и авторизацией все в порядке.
Остальные методы работают.
Проблемы только в отправке файла.
Полный листинг метода

public function request($uri, $method = 'GET', array $headers = array(), array $data = array())
{

if ('GET' === $method) {
if (!empty($data)) {
$data = '?' . http_build_query($data, '', '&');
} else {
$data = '';
}
$headers[] = 'Cache-Control: no-cache';
$headers[] = 'Content-Type: application/json';
$curlOptions[\CURLOPT_HTTPGET] = true;
$curlOptions[\CURLOPT_RETURNTRANSFER] = true;
$curlOptions[\CURLOPT_URL] = $uri . $data;
} elseif ('POST' === $method) {
$headers[] = 'Cache-Control: no-cache';
$headers[] = 'Content-Type: application/json';
$curlOptions[\CURLOPT_POST] = true;
$curlOptions[\CURLOPT_RETURNTRANSFER] = true;
$curlOptions[\CURLOPT_URL] = $uri;
$curlOptions[\CURLOPT_POSTFIELDS] = json_encode($data);
$headers[] = 'Content-Length: ' . strlen(json_encode($data));
} elseif ('FILE' === $method) {
$data = Array('document' => '@' . $data['file']);
$headers[] = 'Cache-Control: no-cache';
$headers[] = 'Content-Type: multipart/form-data';
$curlOptions[\CURLOPT_POST] = true;
$curlOptions[\CURLOPT_RETURNTRANSFER] = true;
$curlOptions[\CURLOPT_URL] = $uri;
$curlOptions[\CURLOPT_POSTFIELDS] = $data;
} else {
die(sprintf('An HTTP method "%s" is not supported. Use "GET" or "POST" or "FILE".', $method));
}
$curlOptions[\CURLOPT_HTTPHEADER] = $headers;
$curl = $this->getCurl();
curl_setopt_array($curl, $curlOptions);
$response = curl_exec($curl);
if (false === $response) {
var_dump(curl_getinfo($curl));
$error = curl_error($curl);
$errorCode = curl_errno($curl);
die('Curl error: ' . $error. ' code: ' . $errorCode);
}
$httpCode = curl_getinfo($this->curl, \CURLINFO_HTTP_CODE);
return array($httpCode, $response);
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.