anrd httputils json 同步
时间: 2023-06-24 07:07:12 浏览: 93
HttpUtils.zip
Android中提供了许多网络请求的工具类,其中包括了HttpURLConnection和HttpClient,而在Android 6之后,Google推荐使用OkHttp来进行网络请求。而对于JSON数据的处理,Android中提供了JSONObject和JSONArray等工具类来解析JSON数据。
下面是使用HttpURLConnection进行同步请求并解析JSON数据的示例代码:
```java
public static JSONObject getJson(String url) throws IOException, JSONException {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.connect();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
reader.close();
return new JSONObject(stringBuilder.toString());
} else {
throw new IOException("Http error code: " + connection.getResponseCode());
}
}
```
其中,url为需要请求的URL地址。如果请求成功,则通过BufferedReader读取返回的数据,并使用JSONObject解析数据。如果请求失败,则抛出IOException异常。
需要注意的是,由于Android不允许在主线程中进行网络请求,因此应该将该代码放在子线程中执行。同时,需要在AndroidManifest.xml文件中添加网络权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
阅读全文