安卓okhttp网络请求框架的使用

package com.example.myapplication;

import android.nfc.Tag;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import okhttp3.*;
import org.jetbrains.annotations.NotNull;
import org.json.JSONArray;
import org.json.JSONObject;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {

    private EditText username;
    private EditText pwd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        username =  findViewById(R.id.username);
        pwd =  findViewById(R.id.password);
    }
    //Get请求
    public void LoginGet(View view){
        String name=username.getText().toString();
        String password=pwd.getText().toString();
        String path="http://172.18.43.147:8080/VATUU_war_exploded/Login?username="+name+"&password="+password;
        System.out.println(path);
        System.out.println("用户名:"+name);
        System.out.println("密码:"+password);

        OkHttpClient client =new OkHttpClient();
        Request request=new Request.Builder().url(path).get().build();
        client.newCall(request).enqueue(new Callback() {
            //失败
            @Override
            public void onFailure(Call call, IOException e) {
                Log.d("MainActivity","连接失败"+e.getLocalizedMessage());
            }
            //成功
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String  result = response.body().string();
                Log.d("MainActivity",result);
                if (response.body()!=null){
                    response.body().close();
                }
            }
        });

    }
    //Post请求
   public void parseJSONWithJSONObject(String jsonData) {
        try {
            // 把需要解析的数据传入到 JSONArray 对象中
            JSONArray jsonArray = new JSONArray(jsonData);
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                String id = jsonObject.getString("xh");
                Log.d("JSONObject解析", "id is " + id);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void LoginPost(View view){
        String name=username.getText().toString();
        String password=pwd.getText().toString();
        String area="1";
        String building ="13";
        String week="10";
        String xq="5";
        //服务器地址String url="http://82.157.106.56:8009/vtServlet";
        String url="http://172.18.46.247:8080/VATUU_war_exploded/vtServlet";
        System.out.println(url);
        System.out.println("用户名:"+name);
        System.out.println("密码:"+password);
        OkHttpClient client=new OkHttpClient();
        //构建表单参数
        FormBody.Builder requestBuild=new FormBody.Builder();
        //添加请求体
        RequestBody requestBody=requestBuild
                .add("area",area)
                .add("building",building)
                .add("week",week)
                .add("xq",xq)
                .build();

        Request request=new Request.Builder()
                .url(url)
                .post(requestBody)
                .build();
        System.out.println(request.toString());
        //异步请求
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.d("MainActivityPost","连接失败"+e.getLocalizedMessage());
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String  result = response.body().string();
                parseJSONWithJSONObject(result);

                Log.d("MainActivity",result);
                if (response.body()!=null){
                    response.body().close();
                }


            }

        });
    }
}

 

posted @ 2022-05-14 18:10  山海自有归期  阅读(59)  评论(0编辑  收藏  举报