Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >调用图片上传http接口,利用httpClient模拟请求

调用图片上传http接口,利用httpClient模拟请求

作者头像
有一只柴犬
发布于 2024-01-25 02:41:00
发布于 2024-01-25 02:41:00
29100
代码可运行
举报
文章被收录于专栏:JAVA体系JAVA体系
运行总次数:0
代码可运行

上传图片除了上传到本地服务器之外,通常需要上传到对方的服务器中,这时候除了上传到我们本地然后做NFS之外(比较不合理),还需要直接捅对方接口,直接将文件上传到对方服务器,这时候就需要利用httpclient来模拟一个图片上传请求。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static JSONObject postImg(String url, File savedDir,
String saveFileName) {


HttpClient client = new HttpClient();
// 返回结果集
JSONObject resJson = new JSONObject();


try {
// 判断白村文件存不存在
if (!savedDir.exists()) {
resJson.put("status", "-1");
resJson.put("msg", "保存文件不存在");
return resJson;
}
PostMethod postMethod = new PostMethod(url);


// FilePart:用来上传文件的类
FilePart filePart = new FilePart("img", new File(savedDir,
saveFileName));
Part[] parts = { filePart };
// 对于MIME类型的请求,httpclient建议全用MulitPartRequestEntity进行包装
MultipartRequestEntity mre = new MultipartRequestEntity(parts,
postMethod.getParams());
postMethod.setRequestEntity(mre);


// 执行请求,返回状态码
int status = client.executeMethod(postMethod);


if (status == HttpStatus.SC_OK) {
LOG.info("上传到易信服务器请求成功,返回信息:"
+ postMethod.getResponseBodyAsString());
String result = postMethod.getResponseBodyAsString();
if (result != null && !result.trim().equals("")) {
// 解析返回信息
resJson = JSONObject.parseObject(result);
String code = resJson.get("errcode").toString(); // 对方接口请求返回结果:0成功
// 其余失败
if (code != null && code.trim().equals("0")) {
LOG.info("上传成功。返回信息:"
+ postMethod.getResponseBodyAsString());
resJson.put("status", "0");
return resJson;
} else {
LOG.info("上传失败。返回信息:" + resJson.get("msg").toString());
resJson.put("status", "-1");
return resJson;
}
}
} else {
LOG.info("请求易信接口上传图片,请求失败。");
resJson.put("status", "-1");
resJson.put("msg", "上传图片,请求失败。");
return resJson;
}
} catch (Exception e) {
resJson.put("status", "-1");
resJson.put("msg", "系统异常");
return resJson;
}
return null;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WebService接口
这是我在做对外部系统推送数据时自己写的WebService推送接口工具类,有几点需要注意
全栈程序员站长
2022/09/07
1.5K0
WebService接口
HTTPClient和CloseableHttpClient
使用HttpClient发送请求的一般步骤 (1) 创建HttpClient对象。 (2)创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。 (3) 如果需要发送请求参数,可调用HttpGet同的setParams(HetpParams params)方法来添加请求参数;对于HttpPost对象而言,可调用setEntity(HttpEntity entity)方法来设置请求参数。 (4) 调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。 (5) 调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。 (6) 释放连接。无论执行方法是否成功,都必须释放连接
全栈程序员站长
2022/07/25
1.7K0
Java调用第三方接口(http总结)
如果有一些jar包找不到,(不是maven管理需要自己下载)有时候有各种问题,或者墙或者找不到之类,可以通过创建一个maven空项目,添加pom依赖,然后下载,在pom仓库里找到即可用。
全栈程序员站长
2022/08/31
3.2K0
HttpClient上传文件传入MultipartFile类型
通常我们在使用httpclient的时候,一把都是使用get或者postd的方式传输一些数据。在近期的项目中有这样的一个需求,我需要通过httpclient去调用一个写好的文件上传的接口,接口中是使用MultipartFile 来接受文件类型参数的。在这种情况下我们就开辟一个HttpClient中的高级功能了。直接上代码,封装了一个工具类:
一缕82年的清风
2021/12/06
5.5K1
使用HttpClient测试SpringMVC的接口
最近在写SSM创建的Web项目,写到一个对外接口时需要做测试,接受json格式的数据。在线测试需要放公网地址,无奈localhost无法访问,测试工具需要安装,不想折腾,想到写爬虫的时候用到的HttpClient可以发Post请求,于是进行了尝试。
geekfly
2022/05/06
3460
requestmethod post和get_post与get
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193294.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
1.1K0
httpclient提交json参数
有一只柴犬
2024/01/25
2760
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
刘大猫
2024/12/05
3860
WebService系列之HttpClient调用WebService接口
测试工具下载soapui测试 http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl package com.extra.credit.ut
SmileNicky
2021/03/17
5K0
WebService系列之HttpClient调用WebService接口
HttpClient测试框架
HttpClient是模拟Http协议客户端请求的一种技术,可以发送Get/Post等请求。 所以在学习HttpClient测试框架之前,先来看一下Http协议请求,主要看请求头信息。
yuanyuan
2019/09/02
1.2K0
HttpClient测试框架
post上传和压缩、插件模拟请求
多张图片上传:写个循环,用键值,可以用BasicNameValuePair,也可以用file,循环添加,也可以用base64变成string上传
六月的雨
2022/01/12
6640
Android使用HttpClient方法和易错问题
HttpClient为Android开发人员提供了跟简洁的操作Http网络连接的方法,在连接过程中也有两种方式,get和post,先看一下怎样实现的
全栈程序员站长
2021/12/23
3040
post请求百度网址内容和访问本地springmvc工程controller
springmvc工程的下载地址:http://download.csdn.net/download/csdnliuxin123524/10001431
全栈程序员站长
2022/06/30
2470
文件图片上传
package com.home.upload;   import java.io.File;   import java.nio.charset.Charset;   import java.util.ArrayList;   import java.util.List;   import org.apache.http.HttpResponse;   import org.apache.http.client.HttpClient;   import org.apache.http.client
xiangzhihong
2018/01/29
4.5K0
java(优化20) httpClient简介
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.3 (GA)。
Java架构师必看
2021/06/10
1K0
ajax图片上传及FastDFS入门案例.
今天来开始写图片上传的功能, 现在的图片上传都讲求 上传完成后立刻回显且页面不刷新, 这里到底是怎么做的呢? 当然是借助于ajax了, 但是ajax又不能提交表单, 这里我们还要借助一个插件: jqu
一枝花算不算浪漫
2018/05/18
1.4K0
日常开发必备神器 HttpUtil 分享(超详细)
最近在工作中需要在后台调用各种上传、下载、以及第三方服务接口,经过研究决定使用 HttpClient,自己封装了一个 HttpClient 工具类,简单轻松的实现get、post、put、delete 以及上传、下载请求,在此分享给大家。
Java极客技术
2022/12/04
3.2K1
httpclient调用京东万象数字营销频道新闻api实例
本人在使用httpclient做练习的时候,偶然发现京东万象上有一个免费的频道新闻调用api,故尝试之,因为官网文档只给出的java代码都是封装后的,所以我自己写了一遍,又写了一些注释。分享代码,供大家参考。
FunTester
2020/04/03
7180
Java实现调用HTTP请求的几种常见方式
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/09/19
5.9K0
Java实现调用HTTP请求的几种常见方式
http请求,HttpClient,调用短信接口
项目中安全设置找回密码的功能,需要通过发送短信验证绑定手机,通过绑定的手机号验证并重新设置密码。 因为项目是通过maven管理的,所以需要在pom.xml文件中引入jar包, maven引入的jar包: <!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient --> <dependency> <groupId>commons-httpclient</gr
二十三年蝉
2018/02/28
6.3K0
http请求,HttpClient,调用短信接口
相关推荐
WebService接口
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验