Зачем файл нужен?
@sazonische по АПИ отправляется на сервер. Далее массив вторым параметром в эту функцию:
function response_to_serv($request_url, $postfields_arr = [ ], $headers_arr = [ ], $request_type = 'POST', $pwd_arr = [ ], $encode_type = 'json_encode', $timeout = 30, $proxy = '', $debug = false, $sep = PHP_EOL, $useragent = 'PHP Bot') {
if (!empty($this->get_debug())) {$request_url = $request_url.'?dbg='.$this->get_debug();}
/*
* if (!empty($pwd_arr)) {
* if (isset($pwd_arr['login']) && isset($pwd_arr['pwd'])) {
* $userpwd = $pwd_arr['login'].':'.$pwd_arr['pwd']; // 'логин:пароль'
* curl_setopt($curl, CURLOPT_USERPWD, $userpwd);
* }
* }
**/
$answer_arr = [];
$answer_arr['body_request'] = null;
if ($request_type !== 'GET') {
switch($encode_type) {
case 'json_encode':
$answer_arr['body_request'] = json_encode($postfields_arr);
break;
case 'http_build_query':
$answer_arr['body_request'] = http_build_query($postfields_arr);
break;
case 'dont_encode':
$answer_arr['body_request'] = $postfields_arr;
break;
default:
$answer_arr['body_request'] = json_encode($postfields_arr);
}
}
$args = [
'body' => $answer_arr['body_request'],
'method' => $request_type,
'timeout' => $timeout,
// 'redirection' => '5',
'user-agent' => $useragent,
// 'httpversion' => '1.0',
// 'blocking' => true,
'headers' => $headers_arr,
'cookies' => [ ],
];
$result = wp_remote_request($request_url, $args);
if (is_wp_error($result)) {
$answer_arr['errors'] = $result->get_error_message(); // $result->get_error_code();
$answer_arr['body_answer'] = null;
} else {
$answer_arr['status'] = true; // true - получили ответ
// Разделение полученных HTTP-заголовков и тела ответа
$response_body = $result['body'];
$http_code = $result['response']['code'];
$answer_arr['http_code'] = $http_code;
if ($http_code == 200) {
// Если HTTP-код ответа равен 200, то возвращаем отформатированное тело ответа в формате JSON
$decoded_body = json_decode($response_body);
$answer_arr['body_answer'] = $decoded_body;
} else {
// Если тело ответа не пустое, то производится попытка декодирования JSON-кода
if (!empty($response_body)) {
$decoded_body = json_decode($response_body);
if ($decoded_body != null) {
// Если ответ содержит тело в формате JSON,
// то возвращаем отформатированное тело в формате JSON
$answer_arr['body_answer'] = $decoded_body;
} else {
// Если не удалось декодировать JSON либо тело имеет другой формат,
// то возвращаем преобразованное тело ответа
$answer_arr['body_answer'] = htmlspecialchars($response_body);
}
} else {
$answer_arr['body_answer'] = null;
}
}
// Вывод необработанных HTTP-заголовков запроса и ответа
// $answer_arr['header_request'] = curl_getinfo($curl, CURLINFO_HEADER_OUT); // Заголовки запроса
$answer_arr['header_answer'] = $result['headers']; // Заголовки ответа
}
// var_dump($answer_arr['body_answer']);
return $answer_arr;
}
Парадокс в том, что в этой функции раньше использовался курл, который заменили на wp_remote_request. С курлом всё чётко. А с wp_remote_request все запросы чётко, а загрузка файлов не идёт. От апи приходит ответ, что мол косяк с размерами изображения. Вообще малец негодую от того, что вп запрещает родной курл в пользу своих наработок считая его опасным, но официальные библиотеку с курлом — не опасны. Но то лирика конечно.
-
Ответ изменён 3 года, 1 месяц назад пользователем
icopydoc.
-
Ответ изменён 3 года, 1 месяц назад пользователем
icopydoc.