Java URL命中问题
我对URL有问题,得到的响应为空。我也尝试对其进行编码,但响应并没有按照预期得到 这是我的代码:Java URL命中问题,java,android,Java,Android,我对URL有问题,得到的响应为空。我也尝试对其进行编码,但响应并没有按照预期得到 这是我的代码: try { String url = "http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO" + query; Log.i("URL", ">>>"+url); JSONObject Responce = getJSO
try
{
String url = "http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO" + query;
Log.i("URL", ">>>"+url);
JSONObject Responce = getJSONfromURL(url.toString());
Log.e("", "Responce"+Responce);
}
catch (Exception e) {}
10-12 20:13:35.411: INFO/URL(6844): >>>http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO
10-12 20:13:35.531: ERROR/log_tag(6844): Error in http connection java.lang.IllegalArgumentException: Illegal character in query at index 59: http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO
10-12 20:13:35.531: ERROR/log_tag(6844): Error converting result java.lang.NullPointerException
10-12 20:13:35.531: ERROR/log_tag(6844): Error parsing data org.json.JSONException: End of input at character 0 of
10-12 20:13:35.541: ERROR/(6844): Responcenull
10-12 20:21:01.180: INFO/URL(7050): >>>http://mymemory.translated.net/api/get?q=Thanks%26langpair%3DEN%7CKO
10-12 20:21:01.710: ERROR/(7050): Responce{"responseData":{"translatedText":"INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT"},"matches":"","responseStatus":403,"responseDetails":"INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT"}
错误日志:
try
{
String url = "http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO" + query;
Log.i("URL", ">>>"+url);
JSONObject Responce = getJSONfromURL(url.toString());
Log.e("", "Responce"+Responce);
}
catch (Exception e) {}
10-12 20:13:35.411: INFO/URL(6844): >>>http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO
10-12 20:13:35.531: ERROR/log_tag(6844): Error in http connection java.lang.IllegalArgumentException: Illegal character in query at index 59: http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO
10-12 20:13:35.531: ERROR/log_tag(6844): Error converting result java.lang.NullPointerException
10-12 20:13:35.531: ERROR/log_tag(6844): Error parsing data org.json.JSONException: End of input at character 0 of
10-12 20:13:35.541: ERROR/(6844): Responcenull
10-12 20:21:01.180: INFO/URL(7050): >>>http://mymemory.translated.net/api/get?q=Thanks%26langpair%3DEN%7CKO
10-12 20:21:01.710: ERROR/(7050): Responce{"responseData":{"translatedText":"INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT"},"matches":"","responseStatus":403,"responseDetails":"INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT"}
编码后
URL编码方法应用
String query = URLEncoder.encode("Thanks&langpair=EN|KO", "utf-8");
String url = "http://mymemory.translated.net/api/get?q=" + query;
Log.i("URL", ">>>"+url);
JSONObject Responce = getJSONfromURL(url.toString());
Log.e("", "Responce"+Responce);
日志::
try
{
String url = "http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO" + query;
Log.i("URL", ">>>"+url);
JSONObject Responce = getJSONfromURL(url.toString());
Log.e("", "Responce"+Responce);
}
catch (Exception e) {}
10-12 20:13:35.411: INFO/URL(6844): >>>http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO
10-12 20:13:35.531: ERROR/log_tag(6844): Error in http connection java.lang.IllegalArgumentException: Illegal character in query at index 59: http://mymemory.translated.net/api/get?q=Thanks&langpair=EN|KO
10-12 20:13:35.531: ERROR/log_tag(6844): Error converting result java.lang.NullPointerException
10-12 20:13:35.531: ERROR/log_tag(6844): Error parsing data org.json.JSONException: End of input at character 0 of
10-12 20:13:35.541: ERROR/(6844): Responcenull
10-12 20:21:01.180: INFO/URL(7050): >>>http://mymemory.translated.net/api/get?q=Thanks%26langpair%3DEN%7CKO
10-12 20:21:01.710: ERROR/(7050): Responce{"responseData":{"translatedText":"INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT"},"matches":"","responseStatus":403,"responseDetails":"INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT"}
不要对查询字符串中的“=”进行URL编码。本质上,您只需要对值进行URL编码。因此,如果您的URL看起来像这样,它将起作用:
http://mymemory.translated.net/api/get?q=Thanks&langpair=EN%7CKO
尝试在web浏览器中打开此。。它运行良好,有一些有效的响应。如果我在这个URL的末尾附加任何东西,它会给出与您在Log::
下提到的相同的响应,因此我认为问题在于query
变量的值对服务器无效。