OkHttp
OkHttp是使用OkIo进行数据传输
安装
OkHttp
http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.squareup.okhttp&a=okhttp&v=LATEST
OKIO
http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.squareup.okio&a=okio&v=LATEST
使用
首先开启android项目的网络权限
在AndroidManifest.xml中添加
<uses-permission
android:name="android.permission.INTERNET">
</uses-permission>
核心代码
OkHttpClient client=new OkHttpClient();
String url="http://www.hunnu.edu.cn/";
String data=null;
Request request=new Request.Builder().url(url).build();
Response response=client.newCall(request).execute();
if(response.isSuccessful()){
data=response.body().string();
}
在使用网络请求时最好使用异步执行,由于还没学习Rxjava,所以用最简单异步执行方法
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bundle b=msg.getData();
tv.setText(b.getString("test"));
}
};
Runnable runnable=new Runnable() {
@Override
public void run() {
try {
start();
} catch (IOException e) {
e.printStackTrace();
}
}
};
public void start() throws IOException{
OkHttpClient client=new OkHttpClient();
String url="http://www.hunnu.edu.cn/";
String data=null;
Request request=new Request.Builder().url(url).build();
Response response=client.newCall(request).execute();
if(response.isSuccessful()){
data=response.body().string();
}
Message msg=new Message();
Bundle bundle=new Bundle();
bundle.putString("test",data);
msg.setData(bundle);
handler.sendMessage(msg);
}
执行结果
心得
虽然这个很简单但我学习还是用了很长一段时间,各种错误,比如没有异步执行,没有打开网络权限,没有安装OkIo,但虽然时间比较久却让我印象深刻记忆尤新