通过okhttp3方式调用另一个项目上传文件

版权声明:重在参与,贵在分享 https://blog.csdn.net/wohaqiyi/article/details/84757549

OkHttp3文件上传接口

  项目中用到需要将文件上传到另一项目B上,项目B提供了一个文件上传的接口。就用到了在后台接口中发送post请求来将文件传过去。可以使用okhttp3的方式,非常简单。

1、加依赖

  首先项目加如下依赖:

 <dependency>
      <groupId>com.squareup.okhttp3</groupId>
      <artifactId>okhttp</artifactId>
      <version>3.3.1</version>
  </dependency>

2、方法如下

/**
	 *
	 * @param url  远程项目上传接口地址
	 * @param uploadDir 文件保存类型路径,用于不同模块下分文件夹管理
	 * @param baseFileUrl 本地文件保存基路径
	 * @param relativeUrl 本地文件保存相对路径
	 * @return  调用远程项目上传接口的返回结果
	 */
	public String uploadFilePost(String url,String uploadDir,String baseFileUrl,String relativeUrl){

		File temporaryFile = new File(baseFileUrl+relativeUrl);
		if(!temporaryFile.exists()){
			return "";
		}
		RequestBody requestBody = new MultipartBody.Builder()
				.addFormDataPart("uploadDir", uploadDir) //参数一
				.addFormDataPart("fileUrl", relativeUrl) //参数二
				.addFormDataPart("file", temporaryFile.getName(),  /RequestBody.create(MediaType.parse("application/octet-stream"),temporaryFile)) //参数三,是一个文件
				.build();
		Request requestOk = new Request.Builder()
				.url(url)
				.post(requestBody) 
				.build(); //post请求含请求参数

		Response response;
		try {
			response = new OkHttpClient().newCall(requestOk).execute();
			String jsonString = response.body().string();
//			temporaryFile.delete();
			if(response.isSuccessful()){
				return jsonString;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "";
	}

  okhttp3发送文件就这样,挺简洁的。

猜你喜欢

转载自blog.csdn.net/wohaqiyi/article/details/84757549