Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
Oper99
Пытаюсь отправить сообщение через рест апи.
Веб сервер работает по https

команда
{"cmd":"0002","UserFrom":"0,"UserTo":"491","Msg":"Hellomsg","APIStype":"mydata","ServerKey":"iddqd"}

строка вызова
https://mysite/API/?data=%7B%22cmd%22%3 ... ddqd%22%7D

получаю ответ:
Access denied. Can't convert data to object

В чем может быть загвоздка ? Куда смотреть?
Аватара пользователя
Андрей Раков
Добрый день.

Проверяйте, когда вставляете ссылки, а то домен ххх.ххх ведет на очень неприличный сайт :)

А насчет вашей ошибки, я попробовал декодировать вашу строку и вот что получилось:
Код: Выделить всё
decodeURI('%7B%22cmd%22%3A%220002%22%2C%22UserFrom%22%3A%220%2C%22UserTo%22%3A%22491%22%2C%22Msg%22%3A%22Hellomsg%22%2C%22APIStype%22%3A%22mydata%22%2C%22ServerKey%22%3A%22iddqd%22%7D')

> {"cmd"%3A"0002"%2C"UserFrom"%3A"0%2C"UserTo"%3A"491"%2C"Msg"%3A"Hellomsg"%2C"APIStype"%3A"mydata"%2C"ServerKey"%3A"iddqd"}

Такое чувство, что вы ее 2 раза закодировали, как вы генерировали эту строку?
Аватара пользователя
Oper99
делал тут
https://www.url-encode-decode.com/
сделал еще раз, получил -

Код: Выделить всё
%7B%22cmd%22%3A%220002%22%2C%22UserFrom%22%3A%220%2C%22UserTo%22%3A%22491%22%2C%22Msg%22%3A%22Hellomsg%22%2C%22APIStype%22%3A%22mydata%22%2C%22ServerKey%22%3A%22iddqd%22%7D%0D%0A


но ответ от сервера это не изменило.

Код: Выделить всё
https://mysite/API/?data=%7B%22cmd%22%3A%220002%22%2C%22UserFrom%22%3A%220%2C%22UserTo%22%3A%22491%22%2C%22Msg%22%3A%22Hellomsg%22%2C%22APIStype%22%3A%22mydata%22%2C%22ServerKey%22%3A%22iddqd%22%7D%0D%0A


выдает

Access denied. Can't convert data to object
Аватара пользователя
Андрей Раков
Этот сервис работает неправильно и он вам не нужен.

Зайдите в браузере в "инструменты разработчика" (комбинация CTRL+SHIFT+I или F12 ), там перейдите в консоль и с помощью команды encodeURI конвертируйте строку:
Вложения
chrome_jcm4PS0WJR.png
chrome_jcm4PS0WJR.png (188.03 КБ) Просмотров: 2367
Аватара пользователя
Oper99
Код: Выделить всё
encodeURI('{"cmd":"0002","UserFrom":"0,"UserTo":"491","Msg":"Hellomsg","APIStype":"mydata","ServerKey":"iddqd"}')
"%7B%22cmd%22:%220002%22,%22UserFrom%22:%220,%22UserTo%22:%22491%22,%22Msg%22:%22Hellomsg%22,%22APIStype%22:%22mydata%22,%22ServerKey%22:%22iddqd%22%7D"

https://mysite/API/?data=%7B%22cmd%22:%220002%22,%22UserFrom%22:%220,%22UserTo%22:%22491%22,%22Msg%22:%22Hellomsg%22,%22APIStype%22:%22mydata%22,%22ServerKey%22:%22iddqd%22%7D


тот же ответ :-(
Аватара пользователя
Андрей Раков
У вас неправильный JSON, там есть ошибка:
"UserFrom": "0 ,"UserTo":"491"

0 - нужно взять в кавычки с двух сторон или вообще не добавлять кавычки для чисел.

Сервис для просмотра JSON: http://jsonviewer.stack.hu/
Аватара пользователя
Oper99
Спасибо, сработало. Только через GET, Через POST все равно ошибка. Но задача решена.
Аватара пользователя
Андрей Раков
Если работает через GET, значит вам нужно искать ошибку в реализации POST.