OkHttpGET+Post+异步GET+异步POST请求数据

来源:互联网 发布:网络科学导论 课件 编辑:程序博客网 时间:2024/06/16 03:00

APP

public class App extends Application {    private static OkHttpClient okHttpClient;    @Override    public void onCreate() {        super.onCreate();        okHttpClient = new OkHttpClient();        okHttpClient = okHttpClient.newBuilder()                .connectTimeout(10, TimeUnit.SECONDS)                .readTimeout(10,TimeUnit.SECONDS)                .addInterceptor(new MyLogInterceptor())                .build();    }    public static OkHttpClient okHttpClient() {        return okHttpClient;    }    public class MyLogInterceptor implements Interceptor{        @Override        public Response intercept(Chain chain) throws IOException {            Request request = chain.request().newBuilder()                    .header("shenfen", "chinesse")                    .build();            HttpUrl url = request.url();            String httpUrl = url.url().toString();            Log.e("TAG", "============" + httpUrl);            Response response = chain.proceed(request);            int code = response.code();            Log.e("TAG", "============response.code() == " + code);            return response;        }    }}
Activity

public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private OkHttpClient okHttpClient;    private Response response;    private Request request;    private Button getbutton;    private Button postbutton;    private Button getyubu;    private Button postyibu;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        getbutton = (Button) findViewById(R.id.getbutton);        postbutton = (Button) findViewById(R.id.postbutton);        getyubu = (Button) findViewById(R.id.getyibubutton);        postyibu = (Button) findViewById(R.id.postyibubutton);        getbutton.setOnClickListener(this);        postbutton.setOnClickListener(this);        getyubu.setOnClickListener(this);        postyibu.setOnClickListener(this);        okHttpClient = App.okHttpClient();    }        @Override    public void onClick(View v) {        switch (v.getId()){            //同步            case R.id.getbutton:                request = new Request.Builder()                        .url("http://www.baidu.com")                        .build();                new Thread(new Runnable() {                    @Override                    public void run() {                        try {                            response = okHttpClient.newCall(request).execute();                            if (response.isSuccessful()){//                                String json = response.body().string();//                                InputStream inputStream = response.body().byteStream();                                runOnUiThread(new Runnable() {                                    @Override                                    public void run() {                                        Toast.makeText(MainActivity.this, "get请求成功", Toast.LENGTH_SHORT).show();                                    }                                });                            }                            else {                                runOnUiThread(new Runnable() {                                    @Override                                    public void run() {                                        Toast.makeText(MainActivity.this, "get请求失败", Toast.LENGTH_SHORT).show();                                    }                                });                            }                        } catch (Exception e) {                            e.printStackTrace();                        }                    }                }).start();                break;//            case  R.id.postbutton://                break;            case R.id.getyibubutton:                //异步get                request = new Request.Builder()                        .url("http://www.baidu.com")                        .build();                okHttpClient.newCall(request).enqueue(new Callback() {                    @Override                    public void onFailure(Call call, IOException e) {                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                Toast.makeText(MainActivity.this, "异步请求失败get", Toast.LENGTH_SHORT).show();                            }                        });                    }                    @Override                    public void onResponse(Call call, Response response) throws IOException {                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                Toast.makeText(MainActivity.this, "异步请求成功get", Toast.LENGTH_SHORT).show();                            }                        });                    }                });                break;            case R.id.postyibubutton:                //异步post                FormBody body = new FormBody.Builder()                        .add("type", "yuantong")                        .add("postid", "11111111111")                        .build();                request = new Request.Builder()                        .url("http://www.kuaidi100.com/query")                        .post(body)                        .build();                okHttpClient.newCall(request).enqueue(new Callback() {                    @Override                    public void onFailure(Call call, IOException e) {                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                Toast.makeText(MainActivity.this, "post请求失败", Toast.LENGTH_SHORT).show();                            }                        });                    }                    @Override                    public void onResponse(Call call, Response response) throws IOException {                        if (response.isSuccessful()) {                            runOnUiThread(new Runnable() {                                @Override                                public void run() {                                    Toast.makeText(MainActivity.this, "post请求成功", Toast.LENGTH_SHORT).show();                                }                            });                        }                    }                });                break;        }    }}

原创粉丝点击