团队冲刺9 5.10

  还是和之前的android与服务器交互一样使用了okhttp库。

  http请求不能写在主线程。

  服务器地址要是http需要给予明文传输权限,之前都有介绍。

  https则不用。

new Thread(() -> {
                    try{
                        OkHttpClient client = new OkHttpClient();//创建服务器
                        File file;//目标文件

                        MultipartBody.Builder requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM);
                        RequestBody fileBody = RequestBody.create(MediaType.parse("image/*"),file);//设置上传文件类型
                        requestBody.addFormDataPart("file",file.getName(),fileBody);
                        Request request = new Request.Builder()
                                .url("服务器接口地址")
                                .post(requestBody.build())
                                .build();//                          这个5000是发送完file超过5秒钟没有得到服务器回复就取消
                        client.newBuilder().readTimeout(5000, TimeUnit.MILLISECONDS).build().newCall(request).enqueue(new Callback() {
                            @Override
                            public void onFailure(@NotNull Call call, @NotNull IOException e) {
                                Log.d("文件上传","失败");
                            }
                            @Override
                            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                                if(response.isSuccessful()){//判断是否成功
                                   
                                }else{
                                    Log.d("文件上传","失败");
                                }
                            }
                        });
                    }catch (Exception e){
                        runOnUiThread(() -> Toast.makeText(InputActivity.this,"发送失败",Toast.LENGTH_LONG).show());
                    }
                }).start();
原文地址:https://www.cnblogs.com/da48/p/14910314.html