Android使用HttpURLConnection访问网络
2019-03-05 13:33
746 查看
Android上可以通过HttpURLConnection发送HTTP请求来访问网络,具体步骤如下:
1.获取HttpURLConncetion实例
通过调用url实例的openConnection()方法即可,代码如下:
[code]URL url = new URL("htp://www.baidu.com"); HttpURLConnection connection = (HttpURLConncetion) url.openConnection();
2.设置请求属性
[code]connection.setRequestMethod("GET");//请求方式 connection.setConnectionTimeout(8000);//连接超时 connection.setReadTimeout(8000);//读取超时
3.获取数据
调用getInputStream()方法获取服务器返回的输入流,并将数据保存到字符串,代码如下:
[code]InputStream in = connection.getInputStream();//获取输入流 reader = new BufferReader(new InputStreamReader(in)); StringBuilder response = new StringBuilder();//构建字符数组 String line; while((line = reader.readerLine())!=null){ response.append(line);//将数据写入字符串 } reader.close(); connection.close();
注1:一般将网络请求写在子线程里面,在进行UI操作的时候再从子线程切换到主线程,开启线程的方法如下:
[code]new Thread(new Runnable(){ @Override public void run(){ //... } }).start()
从子线程切换到主线程的方法如下:
[code]runOnUiThread(new Runnable(){ @Override public void run(){ //... } })
注2:访问网络需要申请网络权限,在AndroidManifest.xml文件中添加:
[code]<uses-permission android:name="android.permission.INTERNET"/>
相关文章推荐
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android之使用HttpURLConnection进行网络访问
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- [转]Android访问网络,使用HttpURLConnection还是HttpClient
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络 使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络主要使用HttpUrlConnection以及HttpClient
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android访问网络,使用HttpURLConnection还是HttpClient?