Russian Qt Forum
Март 28, 2024, 20:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как зашифровать кусок, QUrl?  (Прочитано 7956 раз)
Zusykss
Гость
« : Февраль 08, 2017, 09:51 »

Это код на  C# : attachments = HttpUtility.UrlEncode(attachments);


Как сделать тоже самое на Qt или средствами C++.

Уже перепробовал кучу способов

но пока успеха не достиг.
Более глубокое описание проблемы по ссылке ниже
https://toster.ru/q/395477?e=4904956#answer_item_965686
Думал использовать - InternetCanonicalizeUr
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Февраль 08, 2017, 09:58 »

Лучше приведите что содержит attachments и что получилось после HttpUtility.UrlEncode Улыбающийся

Попробую угадать вам нужен QUrl::toPercentEncoding
« Последнее редактирование: Февраль 08, 2017, 10:01 от gil9red » Записан

Zusykss
Гость
« Ответ #2 : Февраль 08, 2017, 11:18 »

Лучше приведите что содержит attachments и что получилось после HttpUtility.UrlEncode Улыбающийся

Попробую угадать вам нужен QUrl::toPercentEncoding


Я пробовал, этот метод. Все вроде получается, высчитывает MD5 нормально, а вот пишет что ошибка поля attachments=в этом поле лежит текст в UTF-8
ответ такой.
{"error_code":100,"error_msg":"PARAM : Invalid parameter attachment value  : [{ \"media\": [ { \"type\": \"text\", \"text\": \" https://www.ok.ru/group/53307826962634\neewgwegwe\n\n\" } ]}]","error_data":null}


 
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Февраль 08, 2017, 13:03 »

Все вроде получается, высчитывает MD5 нормально, а вот пишет что ошибка поля attachments=в этом

Кто пишет?

Если на c# работало, то:
Берете значения attachments и HttpUtility.UrlEncode(attachments), запоминаете их (notepad++, привет)
Берете attachments в Qt и пробуете получить то же значение что HttpUtility.UrlEncode(attachments)

А так не понятно что у вас получилось и что не нравится ok Улыбающийся
Записан

Zusykss
Гость
« Ответ #4 : Февраль 08, 2017, 15:46 »

Благодарю за ответ, так и сделаю.  Смеющийся
Записан
Zusykss
Гость
« Ответ #5 : Февраль 08, 2017, 20:05 »

Подскажите как убрать лишнее значения

Первая строка это мой результат с помощью метода QUrl::toPercentEncoding
А второй как должно быть!

%7B%20%20%20%20%22media%22%3A%20%5B%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22text%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%22text%22%3A%20%22%D0%92%D0%B0%D0%BA%D0%B0%D0%BD%D1%81%D1%96%D1%8F%20%E2%80%93%20%D0%BF%D0%BE%D0%BC%D1%96%D1%87%D0%BD%D0%B8%D0%BA%20%D0%BA%D1%83%D1%85%D0%B0%D1%80%D1%8F%20%E2%80%93%20%D0%B4%D0%BE%20%D1%80%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D0%BD%D1%83%20%D0%B3%D0%BE%D1%82%D0%B5%D0%BB%D1%8E%204*%20%D0%B2%20%D0%9F%D1%80%D0%B0%D0%B7%D1%96%2C%20%D1%82%D1%96%D0%BB%D1%8C%D0%BA%D0%B8%20%D0%B7%20%D0%BE%D1%84%D1%96%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%BC%D0%B8%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8.%20%D0%9F%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F%20%D1%81%D1%82%D1%80%D0%B0%D0%B2%20%D0%B7%D0%B0%20%D0%B7%D0%B0%D0%B2%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F%D0%BC%20%D1%88%D0%B5%D1%84-%D0%BA%D1%83%D1%85%D0%B0%D1%80%D1%8F%2C%20%20%D0%B7%D0%B0%20%D0%BC%D0%B5%D0%BD%D1%8E%20%E2%80%93%20%D0%BD%D0%B5%20%D0%BB%D0%B8%D1%88%D0%B5%20%D0%B4%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%2C%20%D0%B0%D0%BB%D0%B5%20%D0%B9%20%D0%BF%D0%BE%D0%B2%D0%BD%D0%BE%D1%86%D1%96%D0%BD%D0%BD%D0%B5%20%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F.%20%D0%94%D0%BE%D1%81%D0%B2%D1%96%D0%B4%20%D1%94%20%D0%BE%D0%B1%D0%BE%D0%B2%E2%80%99%D1%8F%D0%B7%D0%BA%D0%BE%D0%B2%D0%B8%D0%BC.%20%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20120%20%D0%9A%D0%BE%D1%80%D1%83%D0%BD%2F%D0%B3%D0%BE%D0%B4.%2B420%20607%20407%20092%2C%20praceje%40gmail.com%22%20%20%20%20%20%20%20%20%7D%20%20%20%20%5D%7D

%7B%20%22media%22%3A%20%5B%20%7B%20%22type%22%3A%20%22text%22%2C%20%22text%22%3A%20%22%20%D0%92%D0%B0%D0%BA%D0%B0%D0%BD%D1%81%D1%96%D1%8F%20%E2%80%93%20%D0%BF%D0%BE%D0%BC%D1%96%D1%87%D0%BD%D0%B8%D0%BA%20%D0%BA%D1%83%D1%85%D0%B0%D1%80%D1%8F%20%E2%80%93%20%D0%B4%D0%BE%20%D1%80%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D0%BD%D1%83%20%D0%B3%D0%BE%D1%82%D0%B5%D0%BB%D1%8E%204%2A%20%D0%B2%20%D0%9F%D1%80%D0%B0%D0%B7%D1%96%2C%20%D1%82%D1%96%D0%BB%D1%8C%D0%BA%D0%B8%20%D0%B7%20%D0%BE%D1%84%D1%96%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%BC%D0%B8%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8.%20%D0%9F%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F%20%D1%81%D1%82%D1%80%D0%B0%D0%B2%20%D0%B7%D0%B0%20%D0%B7%D0%B0%D0%B2%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F%D0%BC%20%D1%88%D0%B5%D1%84-%D0%BA%D1%83%D1%85%D0%B0%D1%80%D1%8F%2C%20%20%D0%B7%D0%B0%20%D0%BC%D0%B5%D0%BD%D1%8E%20%E2%80%93%20%D0%BD%D0%B5%20%D0%BB%D0%B8%D1%88%D0%B5%20%D0%B4%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%2C%20%D0%B0%D0%BB%D0%B5%20%D0%B9%20%D0%BF%D0%BE%D0%B2%D0%BD%D0%BE%D1%86%D1%96%D0%BD%D0%BD%D0%B5%20%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F.%20%D0%94%D0%BE%D1%81%D0%B2%D1%96%D0%B4%20%D1%94%20%D0%BE%D0%B1%D0%BE%D0%B2%E2%80%99%D1%8F%D0%B7%D0%BA%D0%BE%D0%B2%D0%B8%D0%BC.%20%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20120%20%D0%9A%D0%BE%D1%80%D1%83%D0%BD%2F%D0%B3%D0%BE%D0%B4.%0A%2B420%20607%20407%20092%2C%20praceje%40gmail.com%22%20%7D%20%5D%7D
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #6 : Февраль 08, 2017, 20:26 »

У вас отличия в входных строках: в первой я увидел больше символов пробелов -- %20

Если обратно привести, то получается:

Первая:
{    "media": [        {            "type": "text",            "text": "Вакансія – помічник кухаря – до ресторану готелю 4* в Празі, тільки з офіціальними документами. Приготування страв за завданням шеф-кухаря,  за меню – не лише допомога, але й повноцінне приготування. Досвід є обов’язковим. Оплата 120 Корун/год.+420 607 407 092, praceje@gmail.com"        }    ]}

Вторая:
{ "media": [ { "type": "text", "text": " Вакансія – помічник кухаря – до ресторану готелю 4* в Празі, тільки з офіціальними документами. Приготування страв за завданням шеф-кухаря,  за меню – не лише допомога, але й повноцінне приготування. Досвід є обов’язковим. Оплата 120 Корун/год.
+420 607 407 092, praceje@gmail.com" } ]}

Причем, во втором json еще перед +420 затесался символ переноса строки
« Последнее редактирование: Февраль 08, 2017, 20:29 от gil9red » Записан

Zusykss
Гость
« Ответ #7 : Февраль 08, 2017, 20:40 »

Странно потому, что строки одинаковые, как так они там появляются.
// мой запрос
%7B%20%20%20%20%22media%22%3A%20%5B%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22text%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%22text%22%3A%20%22%D0%92%D0%B0%D0%BA%D0%B0%D0%BD%D1%81%D1%96%D1%8F%20%E2%80%93%20%D0%BF%D0%BE%D0%BC%D1%96%D1%87%D0%BD%D0%B8%D0%BA%20%D0%BA%D1%83%D1%85%D0%B0%D1%80%D1%8F%20%E2%80%93%20%D0%B4%D0%BE%20%D1%80%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D0%BD%D1%83%20%D0%B3%D0%BE%D1%82%D0%B5%D0%BB%D1%8E%204*%20%D0%B2%20%D0%9F%D1%80%D0%B0%D0%B7%D1%96%2C%20%D1%82%D1%96%D0%BB%D1%8C%D0%BA%D0%B8%20%D0%B7%20%D0%BE%D1%84%D1%96%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%BC%D0%B8%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8.%20%D0%9F%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F%20%D1%81%D1%82%D1%80%D0%B0%D0%B2%20%D0%B7%D0%B0%20%D0%B7%D0%B0%D0%B2%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F%D0%BC%20%D1%88%D0%B5%D1%84-%D0%BA%D1%83%D1%85%D0%B0%D1%80%D1%8F%2C%20%20%D0%B7%D0%B0%20%D0%BC%D0%B5%D0%BD%D1%8E%20%E2%80%93%20%D0%BD%D0%B5%20%D0%BB%D0%B8%D1%88%D0%B5%20%D0%B4%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%2C%20%D0%B0%D0%BB%D0%B5%20%D0%B9%20%D0%BF%D0%BE%D0%B2%D0%BD%D0%BE%D1%86%D1%96%D0%BD%D0%BD%D0%B5%20%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F.%20%D0%94%D0%BE%D1%81%D0%B2%D1%96%D0%B4%20%D1%94%20%D0%BE%D0%B1%D0%BE%D0%B2%E2%80%99%D1%8F%D0%B7%D0%BA%D0%BE%D0%B2%D0%B8%D0%BC.%20%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20120%20%D0%9A%D0%BE%D1%80%D1%83%D0%BD%2F%D0%B3%D0%BE%D0%B4.%2B420%20607%20407%20092%2C%20praceje%40gmail.com%22%20%20%20%20%20%20%20%20%7D%20%20%20%20%5D%7D

что не так пишу, чего удаляет еще %22%
attach.replace(QRegExp("[%20]{2,}"),"%20");
// пробую регуляркой удалить лишнее
%7B%20media%203A%205B%207B%20type%203A%20text%20C%20text%203A%20D%209%20D%20B%20D%20BA%D%20B%20D%20BD%D1%81%D1%96%D1%8F%20E%208%2093%20D%20BF%D%20BE%D%20BC%D1%96%D1%87%D%20BD%D%20B8%D%20BA%20D%20BA%D1%83%D1%85%D%20B%20D1%8%20D1%8F%20E%208%2093%20D%20B4%D%20BE%20D1%8%20D%20B5%D1%81%D1%8%20D%20BE%D1%8%20D%20B%20D%20BD%D1%83%20D%20B3%D%20BE%D1%8%20D%20B5%D%20BB%D1%8E%204%20A%20D%20B%20D%209F%D1%8%20D%20B%20D%20B7%D1%96%20C%20D1%8%20D1%96%D%20BB%D1%8C%D%20BA%D%20B8%20D%20B7%20D%20BE%D1%84%D1%96%D1%86%D1%96%D%20B%20D%20BB%D1%8C%D%20BD%D%20B8%D%20BC%D%20B8%20D%20B4%D%20BE%D%20BA%D1%83%D%20BC%D%20B5%D%20BD%D1%8%20D%20B%20D%20BC%D%20B8.%20D%209F%D1%8%20D%20B8%D%20B3%D%20BE%D1%8%20D1%83%D%20B%20D%20B%20D%20BD%D%20BD%D1%8F%20D1%81%D1%8%20D1%8%20D%20B%20D%20B%20D%20B7%D%20B%20D%20B7%D%20B%20D%20B%20D%20B4%D%20B%20D%20BD%D%20BD%D1%8F%D%20BC%20D1%88%D%20B5%D1%84-%D%20BA%D1%83%D1%85%D%20B%20D1%8%20D1%8F%20C%20D%20B7%D%20B%20D%20BC%D%20B5%D%20BD%D1%8E%20E%208%2093%20D%20BD%D%20B5%20D%20BB%D%20B8%D1%88%D%20B5%20D%20B4%D%20BE%D%20BF%D%20BE%D%20BC%D%20BE%D%20B3%D%20B%20C%20D%20B%20D%20BB%D%20B5%20D%20B9%20D%20BF%D%20BE%D%20B%20D%20BD%D%20BE%D1%86%D1%96%D%20BD%D%20BD%D%20B5%20D%20BF%D1%8%20D%20B8%D%20B3%D%20BE%D1%8%20D1%83%D%20B%20D%20B%20D%20BD%D%20BD%D1%8F.%20D%2094%D%20BE%D1%81%D%20B%20D1%96%D%20B4%20D1%94%20D%20BE%D%20B1%D%20BE%D%20B%20E%208%2099%D1%8F%D%20B7%D%20BA%D%20BE%D%20B%20D%20B8%D%20BC.%20D%209E%D%20BF%D%20BB%D%20B%20D1%8%20D%20B%201%20D%209A%D%20BE%D1%8%20D1%83%D%20BD%20F%D%20B3%D%20BE%D%20B4.%20A%20B4%20607%20407%209%20C%20praceje%40gmail.com%207D%205D%7D

// правильный ответ
%7B%20%22media%22%3A%20%5B%20%7B%20%22type%22%3A%20%22text%22%2C%20%22text%22%3A%20%22%20%D0%92%D0%B0%D0%BA%D0%B0%D0%BD%D1%81%D1%96%D1%8F%20%E2%80%93%20%D0%BF%D0%BE%D0%BC%D1%96%D1%87%D0%BD%D0%B8%D0%BA%20%D0%BA%D1%83%D1%85%D0%B0%D1%80%D1%8F%20%E2%80%93%20%D0%B4%D0%BE%20%D1%80%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D0%BD%D1%83%20%D0%B3%D0%BE%D1%82%D0%B5%D0%BB%D1%8E%204%2A%20%D0%B2%20%D0%9F%D1%80%D0%B0%D0%B7%D1%96%2C%20%D1%82%D1%96%D0%BB%D1%8C%D0%BA%D0%B8%20%D0%B7%20%D0%BE%D1%84%D1%96%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%BC%D0%B8%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8.%20%D0%9F%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F%20%D1%81%D1%82%D1%80%D0%B0%D0%B2%20%D0%B7%D0%B0%20%D0%B7%D0%B0%D0%B2%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F%D0%BC%20%D1%88%D0%B5%D1%84-%D0%BA%D1%83%D1%85%D0%B0%D1%80%D1%8F%2C%20%20%D0%B7%D0%B0%20%D0%BC%D0%B5%D0%BD%D1%8E%20%E2%80%93%20%D0%BD%D0%B5%20%D0%BB%D0%B8%D1%88%D0%B5%20%D0%B4%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%2C%20%D0%B0%D0%BB%D0%B5%20%D0%B9%20%D0%BF%D0%BE%D0%B2%D0%BD%D0%BE%D1%86%D1%96%D0%BD%D0%BD%D0%B5%20%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F.%20%D0%94%D0%BE%D1%81%D0%B2%D1%96%D0%B4%20%D1%94%20%D0%BE%D0%B1%D0%BE%D0%B2%E2%80%99%D1%8F%D0%B7%D0%BA%D0%BE%D0%B2%D0%B8%D0%BC.%20%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20120%20%D0%9A%D0%BE%D1%80%D1%83%D0%BD%2F%D0%B3%D0%BE%D0%B4.%0A%2B420%20607%20407%20092%2C%20praceje%40gmail.com%22%20%7D%20%5D%7D
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #8 : Февраль 08, 2017, 22:48 »

Странные у вас json используются... Нехорошо что у них пробелы между элементами
Вам нужно к одному виду приводить строки json, иначе фигня будет происходить

что не так пишу, чего удаляет еще %22%
attach.replace(QRegExp("[%20]{2,}"),"%20");
Тут все просто: в квадратных скобках вы указываете вариации символов в встречаемой строке, правильнее было бы: (%20){2,}
Записан

Zusykss
Гость
« Ответ #9 : Февраль 09, 2017, 23:36 »

Странные у вас json используются... Нехорошо что у них пробелы между элементами
Вам нужно к одному виду приводить строки json, иначе фигня будет происходить

что не так пишу, чего удаляет еще %22%
attach.replace(QRegExp("[%20]{2,}"),"%20");
Тут все просто: в квадратных скобках вы указываете вариации символов в встречаемой строке, правильнее было бы: (%20){2,}




Благодарю за подсказки воспользовался для шифрования QUrl::toPercentEncoding(at,"", "/,,/,\\,?,:,@,&,=,+,$,#,-,_,.,!,~,*,',(,)" );


А другая проблема была, что JSON файл не принимает
Спец символы JSON

\b  Backspace (ascii code 08)
\f  Form feed (ascii code 0C)
\n  New line
\r  Carriage return
\t  Tab
\"  Double quote
\\  Backslash character

Просто заменил символы \n на \\n  и тд.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #10 : Февраль 10, 2017, 08:26 »

Попробуйте их экранировать слешем. На крайний вариант содержимое можно кодировать в base64, но в него обычно байтовые массивы помещают (например, картинки)
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.062 секунд. Запросов: 22.