在 Android 上请求网络数据常常使用 HttpURLConnection
或者 HttpClient
。但是,从Android 6.0开始 HttpClient
已经不再推荐使用,而推荐使用 HttpURLConnection
。此外,还可以使用第三方库如:OkHttp
,Retrofit
,volley
等更强大的网络请求方法。以下是 HttpURLConnection
的使用方法。
首先需要声明权限:
<uses-permission android:name="android.permission.INTERNET" />
然后创建一个新线程,并在新线程中打开Http链接:
new Thread(new Runnable() {
@Override
public void run() {
try {
String urlString = "https://www.example.com";
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
这就实现了一个基本的网络请求功能。
注意,网络请求是耗时操作,不能在主线程(UI线程)中进行,否则会引发 NetworkOnMainThreadException
异常。因此需要创建一个新线程来进行,或者利用 AsyncTask
,Handler
等机制将网络操作放在非 UI 线程中。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/170607.html