Роботы, плагины и скрипты к чату 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 конвертируйте строку:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
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
добавил кавычки

https://mysite/API/?data=%7B%22cmd%22:% ... ddqd%22%7D


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