Почему этот запрос прерывается? - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть этот URL-

http://localhost/app_demo/sample.php?jsonRequest={"GenInfo":{"type":"Request","appname":"XXX","appversion":"1.0.0"},"searchDish":{"userId":"295","dishName":"","est":"Pizza &amp; Wings","location":"","type":"","priceRange":"","deviceos":"value","deviceId":"<UDID>","deviceType":"value","pageNo":"1"}}

, когда я нажимаю на этот URL-адрес и печатаю

print_r($_REQUEST['jsonRequest']);

строковую печать только до

{"GenInfo":{"type":"Request","appname":"XXX","appversion":"1.0.0"},"searchDish":{"userId":"295","dishName":"","est":"2 Pizza

Я ищу в сетино не получил ответ. Какое решение для этого?пожалуйста, помогите, спасибо.

Ответы [ 3 ]

4 голосов
/ 06 декабря 2011

Строка запроса обычно состоит из пар ключ / значение, начало строки запроса - знак вопроса (?), А затем все пары разделяются амперсандом (&). Наличие амперсанда в вашем значении похоже на запуск нового параметра.

Однако это не правильный способ сделать это. Вы не должны помещать JSON в строку запроса.

Если вы действительно должны иметь амперсанд в строке запроса, используйте % 26 , а не & amp . % 26 - это шестнадцатеричное значение для амперсанда.

2 голосов
/ 06 декабря 2011

Вы должны сделать POST-запрос вместо GET-запроса:

  • Кодирование коллизий
  • ограничение длины URI
1 голос
/ 06 декабря 2011

Символ "&" является проблемой, потому что он зарезервирован.(это разделитель параметров строки запроса) Вы должны " urlencode " свою строку, прежде чем использовать ее в своем запросе GET.Таким образом, такие символы, как & конвертируются.Но, как указывает jValdron, вы не должны помещать JSON в строку запроса, но вы можете сделать это.

Таким образом, вы urlencode строки:

$url = 'http://localhost/app_demo/sample.php?jsonRequest=';
$jsonRequest = urlencode('{"GenInfo":{"type":"Request","appname":"XXX","appversion":"1.0.0"},"searchDish":{"userId":"295","dishName":"","est":"Pizza &amp; Wings","location":"","type":"","priceRange":"","deviceos":"value","deviceId":"<UDID>","deviceType":"value","pageNo":"1"}}');
$url .= $jsonRequest;

И тогда вы urldecode

print_r(urldecode($_REQUEST['jsonRequest']));

Опять же, вам не следует помещать JSON в строку запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...