Android进阶之路 - HttpURLConnection的使用详解
2017-02-03 19:56
786 查看
大家都清楚网络请求在Android中是必不可少的,当然但凡是在移动端,网络请求都是必需的,而Android在2.0之前使用的是HttpClient,而2.0之后就是使用的HttpURLConnection,当下的一些网络框架或者说是工具,基本都是基于HttpURLConnection进行开发使用的,如Volley,Okhttp等(这些之后都会为大家带来详解,链接之后会写在文章中),下面为大家带来的是HttpURLConnection的详细使用。
效果图:
MainActivity Code:
MainActivity Xml Code:
注意点:
1.网络请求,请注意添加网络权限
2.在代码中我们引用的是HttpURLConnection,千万别误写为HttpConnection,因为完全俩个意思,从单词就可以看出,一个是通过URL进行链接,一个只是链接,肯定有问题的
3.runOnUiThread也可以使用Handler代替
效果图:
MainActivity Code:
package com.example.urlconnection; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private Button mBtn; private TextView mData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { mBtn = (Button) findViewById(R.id.bt_Button); mData = (TextView) findViewById(R.id.tv_data); mBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new Thread(new Runnable() { private BufferedReader bufferedReader; private StringBuilder stringBuilder; @Override public void run() { HttpURLConnection concection=null; try { //我们要请求的后台网址 URL url = new URL("http://www.baidu.com"); //通过Url建立请求 concection = (HttpURLConnection) url.openConnection(); //请求方式 concection.setRequestMethod("GET"); //链接超时 concection.setConnectTimeout(6666); //读书数据超时 concection.setReadTimeout(6666); //获取网上输出流 InputStream inputStream = concection.getInputStream(); //进行读取 bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); //创建容器用于存储 stringBuilder = new StringBuilder(); //判断容器状态 String line; while((line=bufferedReader.readLine())!=null){ stringBuilder.append(line); } //返回主线程我们读取到的信息 runOnUiThread(new Runnable() { public void run() { mData.setText(stringBuilder); } }); } catch (IOException e) { e.printStackTrace(); } //这个大家知道Java应该都清楚,这个是必然会执行的一个操作- 这里其实都是在请求完毕执行的操作,意图在于减少内存泄漏的可能 finally{ if(bufferedReader!=null){ try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } //请求完之后断开链接 if(concection!=null){ concection.disconnect(); } } } }).start(); } }); } }
MainActivity Xml Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/bt_Bu 4000 tton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="发送网络请求" /> <TextView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:id="@+id/tv_data" android:gravity="center" android:text="respones返回数据区" /> </LinearLayout>
注意点:
1.网络请求,请注意添加网络权限
2.在代码中我们引用的是HttpURLConnection,千万别误写为HttpConnection,因为完全俩个意思,从单词就可以看出,一个是通过URL进行链接,一个只是链接,肯定有问题的
3.runOnUiThread也可以使用Handler代替
相关文章推荐
- Android中HttpURLConnection使用详解
- Android开发使用HttpURLConnection进行网络编程详解【附源码下载】
- Android使用HttpUrlConnection请求服务器发送数据详解
- Android使用HttpUrlConnection请求服务器发送数据详解
- Android 中 HttpURLConnection 使用详解
- Android中HttpURLConnection使用详解
- Android 中 HttpURLConnection 使用详解
- Android使用HttpUrlConnection请求服务器发送数据详解
- Android使用HttpUrlConnection请求服务器发送数据详解
- Android中HttpURLConnection使用详解
- Android使用HttpURLConnection显示网络图片
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android的网络应用-使用HttpURLConnection
- Android开发_使用HttpURLConnection实现多线程下载
- Android访问网络,使用HttpURLConnection还是HttpClient?
- 【代码】Android的网络通信详解HttpUrlConnection和HttpClient
- android中HttpURLConnection的使用
- Android HttpURLConnection对象使用
- Android 网络应用重点———使用HttpURLConnection 上传文件
- Android开发之使用HttpURLConnection进行POST请求