OkHttpGET+Post+異步GET+異步POST請求數據

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;
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章