java模拟post发送文件

String result="";
		CloseableHttpClient httpClient = null;
		try {
			// 创建HttpClient
			httpClient = HttpClients.createDefault();
			HttpPost httpPost = new HttpPost(url);

			//设置超时时间,这个是httpclient 4.3版本之后的设置方法
			RequestConfig requestConfig =  RequestConfig.custom()
					.setSocketTimeout(20000)
					.setConnectTimeout(20000)
					.build();
			httpPost.setConfig(requestConfig);

			httpPost.addHeader("Authorization", authorization);
			MultipartEntityBuilder builder = MultipartEntityBuilder.create();
			/* 绑定文件参数,传入文件流和 contenttype,此处也可以继续添加其他 formdata 参数 */
			builder.addBinaryBody("file", inputStream, ContentType.MULTIPART_FORM_DATA, fileName);
			builder.addTextBody("instance",instance);
			builder.addTextBody("space",space);
			builder.addTextBody("approve",approve);
			builder.addTextBody("owner",owner);
			builder.addTextBody("owner_name",ownerName);
			HttpEntity entity = builder.build();
			httpPost.setEntity(entity);
			// 执行提交
			HttpResponse response = httpClient.execute(httpPost);
			int statusCode = response.getStatusLine().getStatusCode();

			logger.info("-----------------状态码--------------");
			logger.info("---------------------->statusCode: "+statusCode);

			HttpEntity responseEntity = response.getEntity();

			//响应状态码200
			if (statusCode == HttpStatus.SC_OK) {
				if (null != responseEntity) {
					// 将响应的内容转换成字符串
					result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8"));
				}

			} else {
				//响应状态码不是200
				if (null != responseEntity) {
					// 将响应的内容转换成字符串
					result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8"));
				}
			}
		} catch (Exception e) {
			logger.error("发生错误:",e.getMessage());
		} finally {
			if (null != inputStream) {
				try {
					inputStream.close();
				} catch (IOException e) {
					logger.error("关闭inputStream失败:",e.getMessage());
				}
			}
			if (null != httpClient) {
				try {
					httpClient.close();
				} catch (IOException e) {
					logger.error("关闭httpClient失败:",e.getMessage());
				}
			}
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值