Как мне объявить base64 json в запросе API? - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь использовать base64-кодировку массива json внутри запроса API.Это массив json:

{"action":"START_STREAMING","metricsList": [{"category":"HARDWARE","subcategory":"MACHINE","component":"DASHBOARD","metric":"STATUS"},":[{"category":"HARDWARE","subcategory":"MACHINE","component":"DASHBOARD","metric":"TIME"},{"category":"HARDWARE","subcategory":"MACHINE","component":"DASHBOARD","metric":"INFO"}],"duration":60}

Это мое текущее решение:

  $command = base64_encode({"action":"START_STREAMING","metricsList": [{"category":"HARDWARE","subcategory":"MACHINE","component":"DASHBOARD","metric":"STATUS"},":[{"category":"HARDWARE","subcategory":"MACHINE","component":"DASHBOARD","metric":"TIME"},{"category":"HARDWARE","subcategory":"MACHINE","component":"DASHBOARD","metric":"INFO"}],"duration":60});

  $request = [
        'command' => $command
    ];

Я почти уверен, что это не совсем верно.Любая помощь?

1 Ответ

0 голосов
/ 18 апреля 2019

Хотя кодировка Base64 не является шифрованием, иногда бывает полезно передать данные или параметры в одну строку.

Кодировка Base64 для URL:

function b64link_encode($string){
    $string = base64_encode($string);
    $string = urlencode($string);
    return $string ;
}

закодируйте эти данные и передайте

Base64 Декодирование для URL:

function b64link_decode($string){
    $string = urldecode($string);
    $string = base64_decode($string);
    return $string ;
}

или вы можете сделать посмотрите это

Некоторые символы в URL-адресе являются специальными, например +, что означает пробел.Чтобы отправлять произвольные данные через URL-адрес, необходимо, чтобы URL-адрес был экранирован, чтобы символы, содержащиеся в данных, не распознавались как «специальные символы».Поскольку вы помещаете данные в HTML, вам также необходимо экранировать HTML, чтобы символы в данных в кодировке URL не распознавались как специальные символы HTML.Отсюда:

$data = /* some data */;
$base64Data = base64_encode($data);
$urlData = urlencode($base64Data);
$htmlData = htmlspecialchars($urlData);
printf('<input type="hidden" value="%s" name="pass-it-on">', $htmlData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...