09-23-2015, 05:36 PM
Всем привет.
Есть у одного хостинга свое api - прикрутил и вроде бы всё ок но(!)
Когда сервер отправляет отчет об ошибке (например из-за того что адрес с таким именем уже существует я получаю вот такое сообщение "{"status":"error","message":"\u041f\u043e\u0447\u0442\..."
\u041f\u043e\u0447\u0442\... - это urlencoded-текст в кодировке UTF-8.
Специально воспроизвожу ошибку
![[Изображение: attachment.php?attachmentid=513&stc=1&d=1443018192]](https://forum.zone-game.info/attachment.php?attachmentid=513&stc=1&d=1443018192)
![[Изображение: attachment.php?attachmentid=514&stc=1&d=1443018192]](https://forum.zone-game.info/attachment.php?attachmentid=514&stc=1&d=1443018192)
В доках у провайдера на это API написано:
То есть, насколько я понимаю, нужно сначала http://php.ru/manual/function.json-decode.html, потом уже взять конкретный элемент массива с ответом и применить к нему http://php.net/manual/en/function.urldecode.php
Мой запрос
Проблема заключается в том, что я очень хреново знаю php и js. urldecode на пару с json-decode для меня слишком сложно.Есть у одного хостинга свое api - прикрутил и вроде бы всё ок но(!)
Когда сервер отправляет отчет об ошибке (например из-за того что адрес с таким именем уже существует я получаю вот такое сообщение "{"status":"error","message":"\u041f\u043e\u0447\u0442\..."
\u041f\u043e\u0447\u0442\... - это urlencoded-текст в кодировке UTF-8.
Специально воспроизвожу ошибку
raz
raz
API DOC
Ответ на POST запрос всегда возвращается в кодировке UTF-8. Может быть возвращен в формате JSON или XML. В рамках документации рассматриваются только примеры в формате JSON.
Ответ всегда содержит поле status, которое может принимать значения error или success.
error: означает, что при попытке выполнить запрос произошла ошибка. При этом детальное описание ошибки будет возвращено в поле message.
{"status":"error","message":"Почтовый ящик с именем test уже существует."}
success: запрос выполнен успешно. При этом, в зависимости от выполненной операции, сервер может возвратить дополнительные данные в поле data.
{"status":"success","data":"219493"}
Ответ всегда содержит поле status, которое может принимать значения error или success.
error: означает, что при попытке выполнить запрос произошла ошибка. При этом детальное описание ошибки будет возвращено в поле message.
{"status":"error","message":"Почтовый ящик с именем test уже существует."}
success: запрос выполнен успешно. При этом, в зависимости от выполненной операции, сервер может возвратить дополнительные данные в поле data.
{"status":"success","data":"219493"}
Мой запрос
PHP код:
<?php
$fields = array(
'auth_login' => "moi_login",
'auth_token' => "moi_token",
'class' => "hosting_mailbox",
'method' => "create",
'account' => "moi_acc",
'mailbox' => $_POST['mailbox'],
'password' => $_POST['password'],
);
$fields_string = "";
foreach($fields as $key => $value) {
$fields_string .= $key.'='.urlencode($value).'&';
}
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://HOSTING/api.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
$response = curl_exec($ch);
curl_close($ch);
echo "Ответ на Ваш запрос: ".$response;
?>Помогите дописать


![[Изображение: bede0f290ad3.png]](http://s011.radikal.ru/i318/1509/26/bede0f290ad3.png)
![[Изображение: 603a30e3fbda.png]](http://s017.radikal.ru/i420/1509/ba/603a30e3fbda.png)