Android не учитывает полные параметры GET в URL - PullRequest
0 голосов
/ 07 апреля 2019

Каков основной рабочий сценарий? ..

Если я попробую ниже URL из web browser, все будет нормально, отправит сообщение.

[http://49.50.67.32/smsapi/httpapi.jsp?username=myusername&password=mypassword&from=myfrom&to=919970316209&text=येथे+क्लिक+करा+ https://www.google.co.in/&coding=2][1]

** П.Н .: Не пытайтесь, так как я изменил имя пользователя и пароли .. !!

Что дальше ..?

Я хочу сделать тот же вызов GET-запроса, но из моего проекта java студии android.

Что я пробовал ..?

Поскольку сетевые операции не разрешены из основного потока, я реализую то же самое в Runnable Thread. Код как ниже:

String coding = "2";
String number = "919970316209";
String Text = "येथे+क्लिक+करा+https://www.google.co.in/";
String dummyURL = "http://49.50.67.32/smsapi/httpapi.jsp?username=myusername&password=mypassword&from=myfrom&to="+number+"&text="+Text+"&coding="+coding; 

URL url = new URL(dummyURL);
connection = url.openConnection();
InputStream is = null;
is = connection.getInputStream();

Log.d("SendViaGate : ", "OPENING : "+ url +" \n");
// FROM HERE ONWARD I GET THE RESPONSE FROM THIS REQUEST 

В чем проблема ..?

Android не рассматривает Unicode Text как часть URL, поэтому он разрывает URL и открывает соединение с частичным URL.

LOG_CAT

04-07 18:34:41.253 7491-7584/com.versatilemarketers.apps.instafame D/SendViaGate :: Exception occurred in main thread.. 
04-07 18:34:41.254 7491-7584/com.versatilemarketers.apps.instafame W/System.err: java.io.FileNotFoundException: http://49.50.67.32/smsapi/httpapi.jsp?username=myusername&password=mypassword&from=myfrom&to=919970316209&text=येथे+क्लिक+करा+https://www.google.co.in/&coding=2
04-07 18:34:41.255 7491-7584/com.versatilemarketers.apps.instafame W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:238)
        at com.versatilemarketers.apps.instafame.SendViaGate.run(SendViaGate.java:51)

В вышеприведенном логе-коте андроид рассматривает http://49.50.67.32/smsapi/httpapi.jsp?username=myusername&password=mypassword&from=myfrom&to=919970316209&text= в качестве подчеркнутого URL, затем येथे + क्लिक + करा + в качестве text и снова https://www.google.co.in/&coding=2 в качестве второго URL.

1 Ответ

0 голосов
/ 08 апреля 2019

Проблема решена, потому что URL не был закодирован перед выполнением запроса, решено с помощью:

URLEncoder.encode(Text, "UTF-8")

Я получил ссылку от Java URL-кодирование параметров строки запроса

Принял ответ из этой ветки, тоже решил мою проблему, Большое спасибо пользователю @ BalusC

...