我有一个项目,其中包括使用snowtams的航空(显示和解码snowtams),我想提出一个请求,以服务器使用我的api键,但当我把浏览器上的完整链接,响应不是一个身体的响应,而是一个json文件,这是我每次下载的请求。我如何处理这个文件在java代码中使用你能给我举个例子吗?先谢谢你。
an example that i tried:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_snowtam_codes);
URL url = null;
try {
url = new URL("https://ajax.googleapis.com/ajax/services/feed/find?" +
"v=1.0&q=Official%20Google%20Blog&userip=INSERT-USER-IP");
} catch (MalformedURLException e) {
e.printStackTrace();
}
URLConnection connection = null;
try {
connection = url.openConnection();
} catch (IOException e) {
e.printStackTrace();
}
connection.addRequestProperty("Referer", "https://applications.icao.int/dataservices/api/notams-
realtime-list?api_key=my_api_key&format=json&criticality=1&locations=ENBO");
StringBuilder builder = new StringBuilder();
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
while(true) {
String line="";
try {
if (!((line = reader.readLine()) != null)) break;
} catch (IOException e) {
e.printStackTrace();
}
builder.append(line);
}
try {
JSONObject json = new JSONObject(builder.toString());
System.out.println("the json object received is::"+json);
} catch (JSONException e) {
e.printStackTrace();
}
}
2条答案
按热度按时间vawmfj5a1#
看一下凌空抽射
您可以创建一个自定义请求类来处理文件下载,如下所示:
然后像这样使用:
更新:
确保已将以下权限添加到清单中:
<uses-permission android:name="android.permission.INTERNET" />
gzjq41n42#
最好使用asynchttpclient。
例子:
辅导的:https://guides.codepath.com/android/using-android-async-http-client