package com.example.cuishizhou.okhttp01;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.io.EOFException;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* okHttp
*/
public class MainActivity extends AppCompatActivity {
* okHttp
*/
public class MainActivity extends AppCompatActivity {
Button okhttp_getbt;
OkHttpClient client;
String info;
TextView infotv;
//定义handler对象
Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
infotv.setText(msg.obj.toString());
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
client=new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();
/**
* okhttp_get
*/
okhttp_getbt= (Button) findViewById(R.id.okhttp_getbt);
infotv= (TextView) findViewById(R.id.infotv);
okhttp_getbt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OkHttpClient okHttpClient=new OkHttpClient();
Request.Builder builder=new Request.Builder();
Request request=builder.get().url("https://baidu.com").build();
Call call=okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
OkHttpClient client;
String info;
TextView infotv;
//定义handler对象
Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
infotv.setText(msg.obj.toString());
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
client=new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();
/**
* okhttp_get
*/
okhttp_getbt= (Button) findViewById(R.id.okhttp_getbt);
infotv= (TextView) findViewById(R.id.infotv);
okhttp_getbt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OkHttpClient okHttpClient=new OkHttpClient();
Request.Builder builder=new Request.Builder();
Request request=builder.get().url("https://baidu.com").build();
Call call=okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
info=response.body().string();
Log.e("body",info);
Message msg1=new Message();
msg1.obj=info;
msg1.what=1;
mHandler.sendMessage(msg1);
//Toast.makeText(MainActivity.this,info, Toast.LENGTH_SHORT).show();
}
});
//dinfotv.setText(info+"");
//Toast.makeText(MainActivity.this,info, Toast.LENGTH_SHORT).show();
}
public void onResponse(Call call, Response response) throws IOException {
info=response.body().string();
Log.e("body",info);
Message msg1=new Message();
msg1.obj=info;
msg1.what=1;
mHandler.sendMessage(msg1);
//Toast.makeText(MainActivity.this,info, Toast.LENGTH_SHORT).show();
}
});
//dinfotv.setText(info+"");
//Toast.makeText(MainActivity.this,info, Toast.LENGTH_SHORT).show();
}
});
}
}
}
方法三:
public void onResponse(Call call, Response response) throws IOException { info=response.body().string(); Log.e("body",info); /*Message msg1=new Message(); msg1.obj=info; msg1.what=1; mHandler.sendMessage(msg1);*/ runOnUiThread(new Runnable() { @Override public void run() { infotv.setText(info); } }); /*mHandler.post(new Runnable() { @Override public void run() { infotv.setText(info); } });*/ //Toast.makeText(MainActivity.this,info, Toast.LENGTH_SHORT).show(); } }); //dinfotv.setText(info+""); //Toast.makeText(MainActivity.this,info, Toast.LENGTH_SHORT).show(); }