PHP - получить тело JSON из запроса HTTPS - PullRequest
0 голосов
/ 14 октября 2018

У меня есть несколько файлов PHP, которые обращаются к некоторому JSON в теле запроса и затем воздействуют на него.

Я получаю JSON, используя:

$json = file_get_contents('php://input');
$input = json_decode($json, TRUE);

И получаю доступ к значениям, используя:

$input["val"]

Однако я только что обновился до HTTPS и пришел к выводу, что он не читает и не получает JSON.

Как получить данные JSON из запроса HTTPS?

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

Следите за проблемами https между сайтами.Ваш браузер будет менее терпимым при использовании https, чем просто при использовании простого http.Например, если ваш основной сайт - https, ваши сценарии поддержки также должны быть https.

Я предлагаю вам внимательно взглянуть на вкладку «Сеть» вашего браузера и найти другие подсказки.

Надеюсь, это указывает вам верное направление.

---Дальнейшее расследование ---

  • Можете ли вы скопировать и вставить оригинальный код в ваш ответ?

Можете ли вы попробовать это (поиск подсказок) ..

print "<br>json: '$json'";
print "<br> type: ".gettype($json);
print "<br> last error: ".json_last_error();
0 голосов
/ 18 октября 2018

Обнаружил мою проблему - я отправлял запрос GET, а не запрос POST.

По какой-то причине это работало без HTTPS, поэтому я не думал, что это проблема.Исправлено сейчас!

0 голосов
/ 16 октября 2018

Случай 1: Из приведенных в вопросе подробностей я думаю, что у вашего целевого сервера нет действующего SSL-сертификата.

Случай 2 На вашем сервере нет обертки https для сценария php.Проверьте вывод следующего скрипта.

<?php

$wrappers = stream_get_wrappers();
echo 'openssl: ',  extension_loaded  ('openssl') ? 'yes':'no', "\n";
echo 'http wrapper: ', in_array('http', $wrappers) ? 'yes':'no', "\n";
echo 'https wrapper: ', in_array('https', $wrappers) ? 'yes':'no', "\n";
echo 'wrappers: ', var_export($wrappers);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...