【Android】OkHttp3的get和post请求

⚠️:需要获取网络许可

<uses-permission android:name="android.permission.INTERNET"/>

⚠️:三方库的支持

implementation 'com.squareup.okhttp3:okhttp:3.10.0'

添加上述依赖会自动添加两个库,一个是OkHttp,一个是Okio

package activitytest.example.com.okhttptest;

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 java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import okhttp3.FormBody;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.RequestBody;

import okhttp3.Response;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private static final String TAG = "MainActivity";

    TextView responseText;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Button sendRequest = (Button)findViewById(R.id.send_request);

        responseText = (TextView)findViewById(R.id.response_text);

        sendRequest.setOnClickListener(this);

    }

    @Override

    public void onClick(View v) {

        if (v.getId() == R.id.send_request){

            //发送请求

            //sendRequestWithHttpURLConnection();

            sendRequestWithOkHttp();

        }

    }

    /*

        OKHttp的请求,方便快捷

     */

    private void  sendRequestWithOkHttp(){

        new Thread(new Runnable() {

            @Override

            public void run() {

                try {

                    /*

                    //get请求

                    OkHttpClient client = new OkHttpClient();

                    Request request = new Request.Builder()

                            .url("http://www.baidu.com")

                            .build();

                    Response response = client.newCall(request).execute();

                    String responseData = response.body().string();

                    showResponse(responseData);

                    */

                    //post请求

                    OkHttpClient client = new OkHttpClient();

                    RequestBody requestBody = new FormBody.Builder()

                            .add("username","20100539")

                            .add("password","123456")

                            .build();

                    Request request = new Request.Builder()

                            .url("http://49.122.0.187/Hall/api/loginVerify")

                            .post(requestBody)

                            .build();

                    Response response = client.newCall(request).execute();

                    String responseData = response.body().string();

                    showResponse(responseData);

                }catch (Exception e){

                    e.printStackTrace();

                }

            }

        }).start();

    }

    private  void showResponse(final  String response){

        runOnUiThread(new Runnable() {

            @Override

            public void run() {

                //在这里进行UI操作,将结果显示在界面上

                responseText.setText(response);

            }

        });

    }

}

猜你喜欢

转载自blog.csdn.net/dangbai01_/article/details/81481991