Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.02.2019
Сообщений: 26
1

Проблема с передачей спец. символов в ссылке, используя OkHttp

28.04.2022, 20:14. Показов 1070. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем день добрый!
Использую АПИ ФНС для получения информации о чеках. Для получения информации следует каждый раз регистрироваться через номер телефона. Исходный код был на питоне, поэтому сравниваю с ним.
При работе с АПИ использую OkHttp.
Вот код на питоне:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
self.__phone = str(input('Input phone in +70000000000 format: '))
 
        url = f'https://{self.HOST}/v2/auth/phone/request'
        payload = {
            'phone': self.__phone,
            'client_secret': self.CLIENT_SECRET,
            'os': self.OS
        }
        headers = {
            'Host': self.HOST,
            'Accept': self.ACCEPT,
            'Device-OS': self.DEVICE_OS,
            'Device-Id': self.DEVICE_ID,
            'clientVersion': self.CLIENT_VERSION,
            'Accept-Language': self.ACCEPT_LANGUAGE,
            'User-Agent': self.USER_AGENT,
        }
        print(payload)
        print(self.__phone)
        resp = requests.post(url, json=payload, headers=headers)
И вот что он мне выводит при инпуте номера (Номер и секретный ключ скрыл):

{'phone': '+79*********', 'client_secret': 'Iy*******h/8p6a********XYQ4=', 'os': 'Android'}
+79*********
Т.е. передает данные со спец. символами.

Тем времем в Java использую OkHttp, получаю ошибку 400 (Плохой запрос) код следующий:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
String str = "+79*********";
        RequestBody formBody = new FormBody.Builder()
                .add("phone", str )
                .add("client_secret", "Iy*******h/8p6a********XYQ4=")
                .add("os", "Android")
                .build();
 
        Request request = new Request.Builder()
                .url("https://irkkt-mobile.nalog.ru:8888/v2/auth/phone/request")
                .addHeader("Host", HOST)
                .addHeader("Accept", ACCEPT)
                .addHeader("Device-OS", DEVICE_OS)
                .addHeader("Device-ID", DEVICE_ID)
                .addHeader("clientVersion", CLIENT_VERSION)
                .addHeader("Accept-Language", ACCEPT_LANGUAGE)
                .addHeader("User-Agent", USER_AGENT)
                .post(formBody)
                .build();
Через дебаг получаю следующее:

Номер: %2B79097261795
Секретный ключ: Iy*******h%2F8p6a********XYQ4%3D

Думаю, проблема именно в этом. На вход к АПИ идут неправильные значения.
Есть ли какие-то решения, способные передать мне точные значения, как в питоне?
Или ошибка вообще не в этом?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2022, 20:14
Ответы с готовыми решениями:

Переход по ссылке с передачей POST запроса
Смысл в следующем. Есть форма на которой вводиться "Логин+Пароль" при нажатии кнопки AJax...

странный баг с передачей массива в ф-ю по ссылке
есть такой простейший код: $data = array( array('a','b','c'), array('d','e','f'), ...

Хочу разобраться с передачей и приемом переменной по ссылке
Здравствуйте. На странице существует таблица при нажатии на которой ссылка передает переменную....

Функция с передачей параметров по значению и по ссылке: что безопаснее
Какой способ передачи параметров более безопасный? Подскажите пожалуйста срочно надо

0
28.04.2022, 20:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2022, 20:14
Помогаю со студенческими работами здесь

Очередное сравнение скорости между Глобальной переменной и передачей по ссылке
Здравствуйте, Прошу извинить, у меня очередной несуразный "бенчмарк", пытаюсь примерно оценить...

Создать програму с передачей параметров по ссылке, использованием указателей и подсчетом количества вызовов
Создайте программу, которая демонстрирует возможность роботы с функциями, используя значения...

Описать подпрограмму-функцию типа void с передачей параметров по ссылке или указателю, определяющую точку Р
Описать подпрограмму-функцию типа void с передачей параметров по ссылке или указателю,...

Реализовать функцию типа void с передачей параметров-результатов по ссылке. Функция вычисляет характеристики окружности
Реализовать функцию типа void с передачей параметров-результатов по ссылке. Функция вычисляет...

Реализовать функцию типа void с передачей параметров-результатов по ссылке. Функция вычисляет характеристики конуса по з
Реализовать функцию типа void с передачей параметров-результатов по ссылке. Функция вычисляет...

Описать функцию типа void с передачей параметров по ссылке или указателю POWERA234(A,B,C,D), вычисляющую вторую, третью
Описать функцию типа void с передачей параметров по ссылке или указателю POWERA234(A,B,C,D),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru