У меня есть приложение для Android, которое я пытаюсь использовать для передачи некоторых данных в веб-сервис с использованием HTTPGet.Если я просто создаю строку, используя метод JSONArray.toString (), я получаю URL, который выглядит примерно так:
http://xxx.xx.xxx.xx/api?method=upload&args[deviceID]=123456789&args[data]=["{element1=93295352, element2=235235, element3=3523523}","{element1=93295352, element2=235235, element3=3523523}"]
Это не работает из-за пробелов и кавычек вURL.Если я попытаюсь сделать что-то вроде следующего:
JSONArray ja = new JSONArray();
// Add Data to JSONArray
String s = ja.toString();
// Add array to StringBuilder url
HTTPGet httpget = new HTTPGet(UrlEncoder.encode(url.toString()));
Я получу сообщение об ошибке, потому что весь URL закодирован и заканчивается следующим образом:
http%3A%2F%2Fxxx.xx.xxx.xx%2Fapi%3Fmethod%3Dupload%26args%5BdeviceID%5D%3D123456879%26args%5Bdata%5D%3D%5B%22%7Belement1%3D915156028000%2C+element2%3D1651651%2C+element3%3D489461%7D%22%2C%22
Очевидно, это не 'Это то, что я ищу, и должно быть лучшее решение, чем поиск / замена всех необходимых символов в части JSONArray этого URL, хотя я полагаю, что делать это таким образом не будет большой проблемой, так как ябеспокоятся только о кавычках и пробелах.
Обратите внимание, что ручное вставление этого кода в браузер вернуло ожидаемые результаты:
http://xxx.xx.xxx.xx/api?method=upload&args[deviceID]=123456789&args[data]=[%22{element1=915156028000,%20element2=0.0,%20element3=2.297444}%22,%22{element1=915156055000,%20element2=0.0,%20element3=2.2974419999999998}%22]