基于Http的文件上传,采用表单方式上传文件。
通过“addFormDataPart”可以添加多个上传的文件。
private void uploadMultiFile() { final String url = "upload url" File file = new File("fileDir", "test.jpg"); RequestBody fileBody = RequestBody.create(MediaType.parse("application/octet-stream"), file); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("image", "test.jpg", fileBody) .build(); Request request = new Request.Builder() .url(url) .post(requestBody) .build(); final okhttp3.OkHttpClient.Builder httpBuilder = new OkHttpClient.Builder(); OkHttpClient okHttpClient = httpBuilder //设置超时 .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(15, TimeUnit.SECONDS) .build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Log.e(TAG, "uploadMultiFile() e=" + e); } @Override public void onResponse(Call call, Response response) throws IOException { Log.i(TAG, "uploadMultiFile() response=" + response.body().string()); } }); } |