Android:使用OkHttp

1、权限:

复制代码
<uses-permission android:name="android.permission.INTERNET" />

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

2、GET:

复制代码
new XXXTask ().execute("http://192.168.191.128:9000/xx");

private class XXXTask extends AsyncTask<String, Void, String> {
        protected String doInBackground(String... urls) {

            Response response = null;
            String responseData = "null";
            OkHttpClient client = new OkHttpClient();

            Request request = new Request.Builder().get()
                    .url(urls[0])
                    .build();

            try {
                response = client.newCall(request).execute();
                responseData = response.body().string();


            } catch (IOException e) {
                e.printStackTrace();
                responseData = "error:" + e.toString();

            }
            return responseData;
        }

        protected void onPostExecute(String result) {
            if (result != null) {

                if (result.startsWith("error")){
                    Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show();
                    return;
                }


                try {
                    JSONObject jsonObject = new JSONObject(result);
                    JSONArray jsonArray = jsonObject.getJSONArray("body");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject jsonObjectTempt = jsonArray.getJSONObject(i);
                        items.add(jsonObjectTempt.getString("userName") );
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                    Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_LONG).show();
                }
            }

        }
    }

3、POST:

复制代码
new XXTask().execute("http://192.168.191.128:9000/xxx", selectedItem, mcode, serial);

private class XXTask extends AsyncTask<String, Void, String> {
        protected String doInBackground(String... urls) {

            Response response = null;
            String responseData = "null";
            OkHttpClient client = new OkHttpClient();


            RequestBody requestBody = new FormBody.Builder()
                    .add("mcode", urls[2])
                    .add("user", urls[1])
                    .add("serial", urls[3]).build();


            Request request = new Request.Builder().post(requestBody)
                    .url(urls[0])
                    .build();

            try {
                response = client.newCall(request).execute();
                responseData = response.body().string();


            } catch (IOException e) {
                code.setText("");
                e.printStackTrace();
                responseData = "error:" + e.toString();
            }
            return responseData;
        }

        protected void onPostExecute(String result) {
            code.setText("");
            if (result != null) {
                if (result.startsWith("error")){
                    Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show();
                    return;
                }
                try {
                    JSONObject jsonObject = new JSONObject(result);
                    String resultTempt = jsonObject.getString("result");

                    if (resultTempt.equals("success")){
                        Toast.makeText(MainActivity.this,  "记录成功", Toast.LENGTH_SHORT).show();
                    }else if(resultTempt.equals("fail")){
                        String bodyTempt = jsonObject.getString("body");
                        Toast.makeText(MainActivity.this,  bodyTempt, Toast.LENGTH_SHORT).show();
                    }else {
                        Toast.makeText(MainActivity.this,  result, Toast.LENGTH_SHORT).show();
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                    Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_LONG).show();
                }
            }

        }
    }

POST后台 controller

复制代码
 @PostMapping("/xx")
    @ResponseBody
    @Transactional
    public String xx(@RequestParam(name = "mcode") String mcode,
                               @RequestParam(name = "serial") String serial,
                               @RequestParam(name = "user") String user)
相关推荐
五彩小白1 天前
自回归和上下文
android
事圆则缓1 天前
Android 多渠道打包实战:Product Flavors、签名、AAB 与发包校验
android
树下困觉眯1 天前
View绘制流程学习--获取WindowManager的三种方式
android·系统架构·view design
vilya1 天前
我怎么给手机 GUI Agent 做双通道感知:无障碍树为主,投屏像素兜底
android·人工智能
李子红了时1 天前
阿狸舞台APP(安卓端手机EncFS解密+压缩包解压+视频播放)
android·音视频
事圆则缓1 天前
Android 使用 Jenkins 实现 CI/CD,并用 SonarQube 建立质量门禁
android·ci/cd·jenkins
其实防守也摸鱼1 天前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化
恋猫de小郭1 天前
Android CLI 支持 AI Agent 通过 Device Streaming 调试云真机
android·前端·flutter
素师良码2 天前
第5篇:显示驱动必备调试工具浅析
android
维克兜率天2 天前
【维克】配对交易的季节性:哪些品种适合长拿?
android·开发语言·笔记·python·算法·kotlin·量化