OkHttp_post请求

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private EditText mEt_qq;
    private EditText mEt_pwd;
    private TextView mTv_status;

    String path = "http://169.254.53.96:8080/web/LoginServlet";

    private static final int SUCCESS = 665;
    private static final int FALL = 894;

    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case SUCCESS:
                    String text= (String) msg.obj;
                    mTv_status.setText(text);
                    break;
                case FALL:
                    Toast.makeText(MainActivity.this, "没有网", Toast.LENGTH_SHORT).show();
                    break;
                default:
                    break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //对控件进行初始化操作
        initVIew();
    }

    private void initVIew() {
        mEt_qq = (EditText) findViewById(R.id.et_qq);
        mEt_pwd = (EditText) findViewById(R.id.et_pwd);
        mTv_status = (TextView) findViewById(R.id.tv_status);
    }

    /**
     * 使用Post进行表单(键值对)上传,完成登录
     * @param view
     */
    public void login(View view){

        //得到用户输入的信息,进行非空判断
        String qq = mEt_qq.getText().toString().trim();
        String pwd =mEt_pwd.getText().toString().trim();
        if(TextUtils.isEmpty(qq) || TextUtils.isEmpty(pwd) ){
            Toast.makeText(MainActivity.this, "不能输入为空", Toast.LENGTH_SHORT).show();
            return;
        }

        //1.0 创建okhttpClinet
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(10, TimeUnit.SECONDS)
                .readTimeout(10,TimeUnit.SECONDS)
                .writeTimeout(10,TimeUnit.SECONDS)
                .build();

        FormBody formBody= new FormBody.Builder()
                .add("qq", qq).add("pwd", pwd)
                .build();

        Request request= new Request.Builder()
                .post(formBody)
                .url(path)
                .build();

        Call call = okHttpClient.newCall(request);

        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                handler.sendEmptyMessage(FALL);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String string = response.body().string();
                Message msg = Message.obtain();
                msg.obj=string;
                msg.what=SUCCESS;
                handler.sendMessage(msg);
            }
        });
    }
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
              android:paddingBottom="@dimen/activity_vertical_margin"
              android:paddingLeft="@dimen/activity_horizontal_margin"
              android:paddingRight="@dimen/activity_horizontal_margin"
              android:paddingTop="@dimen/activity_vertical_margin"
              tools:context=".MainActivity" >

    <EditText
        android:id="@+id/et_qq"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入qq号码" />

    <EditText
        android:id="@+id/et_pwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入密码"
        android:inputType="textPassword" />

    <Button
        android:onClick="login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登陆" />


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_status"
            android:text="登陆状态:"
            />

</LinearLayout>

build.gradle //依赖

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

猜你喜欢

转载自blog.csdn.net/FanRQ_/article/details/84034915