0
我的代码在我的Android项目从休息api下载json字符串,但url内下载的字符串是无效的,它变得像这样: 在某些原因URL纠正它是自己在stackoverflow站点 但我的意思是破折号变成这样在日志猫:(https:// www。example.com 这是从日志猫的截图: url screenshot from logcat 有人可以帮我解决这个问题, 谢谢提前JSON字符串内的网址是无效的,我从java下载它从休息api后:它像“https://
这是我的代码,我写的API获取JSON:
public class LoadThread extends Thread {
private PakageParams pakage = new PakageParams() ;
private void preparePakage(){
pakage.setUri("https://example/api/v2.1/search?");
pakage.setMethod("GET");
pakage.setParams("lat","25.800693");
pakage.setParams("lon", "55.976199");
}
public void run() {
if(!isInterrupted()){
String json = loadData();
if(json != null){
EventBus.getDefault().post(new OnjsonLoaded(json));
} else {
EventBus.getDefault().post(new OnjsonLoaded("caanot load json"));
}
}
}
private String loadData(){
preparePakage();
String uri = pakage.getUri();
uri += pakage.getEncodedParams();
BufferedReader reader = null ;
HttpURLConnection conn = null ;
try {
URL url = new URL(uri);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("user-key",API_KEY_STRING);
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null ;
while((line = reader.readLine())!= null){
sb.append(line);
}
return sb.toString();
} catch (MalformedURLException e){
return null ;
} catch (IOException e) {
e.printStackTrace();
if(reader !=null){
try {
reader.close();
conn.disconnect();
} catch (IOException e1) {
e1.printStackTrace();
return e1.getMessage() ;
}
}
return e.getMessage() ;
}
}
}
在Log cat中URL将以这种方式打印,但是如果您打网络电话,它应该可以正常工作 – Haroon
http://stackoverflow.com/questions/1580647/json-why-are-forward -slashes转义 – laalto