android使用OkHttp实现mysql增删改查、文件上传与下载

 mysql增删改查:

public class MainActivity extends AppCompatActivity {

    private EditText sqlEditText;
    private Button queryButton, insertButton, updateButton, deleteButton;
    private TextView resultTextView;

    private static final String BASE_URL = "http://localhost:3000";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        sqlEditText = findViewById(R.id.sql_edit_text);
        queryButton = findViewById(R.id.query_button);
        insertButton = findViewById(R.id.insert_button);
        updateButton = findViewById(R.id.update_button);
        deleteButton = findViewById(R.id.delete_button);
        resultTextView = findViewById(R.id.result_text_view);

        queryButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String sql = sqlEditText.getText().toString();
                query(sql);
            }
        });

        insertButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String table = "users";
                Map<String, String> data = new HashMap<>();
                data.put("name", "John");
                data.put("age", "30");
                insert(table, data);
            }
        });

        updateButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String table = "users";
                Map<String, String> data = new HashMap<>();
                data.put("name", "John Doe");
                data.put("age", "35");
                int id = 1;
                update(table, data, id);
            }
        });

        deleteButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String table = "users";
                int id = 1;
                delete(table, id);
            }
        });
    }

    private void query(String sql) {
        OkHttpClient client = new OkHttpClient();
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType, "{\"sql\":\"" + sql + "\"}");
        Request request = new Request.Builder()
                .url(BASE_URL + "/query")
                .post(body)
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final String result = response.body().string();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        resultTextView.setText(result);
                    }
                });
            }
        });
    }

    private void insert(String table, Map<String, String> data) {
        OkHttpClient client = new OkHttpClient();
        MediaType mediaType = MediaType.parse("application/json");
        JSONObject jsonObject = new JSONObject(data);
        RequestBody body = RequestBody.create(mediaType, "{\"table\":\"" + table + "\",\"data\":" + jsonObject.toString() + "}");
        Request request = new Request.Builder()
                .url(BASE_URL + "/insert")
                .post(body)
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final String result = response.body().string();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        resultTextView.setText(result);
                    }
                });
            }
        });
    }

    private void update(String table, Map<String, String> data, int id) {
        OkHttpClient client = new OkHttpClient();
        MediaType mediaType = MediaType.parse("application/json");
        JSONObject jsonObject = new JSONObject(data);
        RequestBody body = RequestBody.create(mediaType, "{\"table\":\"" + table + "\",\"data\":" + jsonObject.toString() + ",\"id\":" + id + "}");
        Request request = new Request.Builder()
                .url(BASE_URL + "/update")
                .post(body)
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final String result = response.body().string();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        resultTextView.setText(result);
                    }
                });
            }
        });
    }

    private void delete(String table, int id) {
        OkHttpClient client = new OkHttpClient();
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType, "{\"table\":\"" + table + "\",\"id\":" + id + "}");
        Request request = new Request.Builder()
                .url(BASE_URL + "/delete")
                .post(body)
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace();
            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final String result = response.body().string();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        resultTextView.setText(result);
                    }
                });
            }
        });
    }
}

 上传下载文件:

public class MainActivity extends AppCompatActivity {

    private Button uploadButton, downloadButton;
    private TextView resultTextView;

    private static final String BASE_URL = "http://localhost:3000";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        uploadButton = findViewById(R.id.upload_button);
        downloadButton = findViewById(R.id.download_button);
        resultTextView = findViewById(R.id.result_text_view);

        uploadButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                uploadFile(file);
            }
        });

        downloadButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                downloadFile(url, file);
            }
        });
    }
private void uploadFile(File file) {
  OkHttpClient client = new OkHttpClient();
  RequestBody requestBody = new MultipartBody.Builder()
    .setType(MultipartBody.FORM)
    .addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("application/octet-stream"), file))
    .build();
  Request request = new Request.Builder()
    .url("http://example.com/upload")
    .post(requestBody)
    .build();
  client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
      Log.e(TAG, "Failed to upload file", e);
    }
    @Override
    public void onResponse(Call call, Response response) throws IOException {
      Log.d(TAG, "File uploaded successfully");
    }
  });
}

private void downloadFile(String url, File file) {
  OkHttpClient client = new OkHttpClient();
  Request request = new Request.Builder()
    .url(url)
    .build();
  client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
      Log.e(TAG, "Failed to download file", e);
    }
    @Override
    public void onResponse(Call call, Response response) throws IOException {
      InputStream inputStream = response.body().byteStream();
      OutputStream outputStream = new FileOutputStream(file);
      byte[] buffer = new byte[4096];
      int bytesRead;
      while ((bytesRead = inputStream.read(buffer)) != -1) {
        outputStream.write(buffer, 0, bytesRead);
      }
      outputStream.flush();
      outputStream.close();
      inputStream.close();
      Log.d(TAG, "File downloaded successfully");
    }
  });
}

猜你喜欢

转载自blog.csdn.net/m0_59799878/article/details/129546904