2019独角兽企业重金招聘Python工程师标准>>>

该文所示代码已过期,请见我的另一篇文章: Android使用MultipartEntityBuilder实现类似form表单提交方式的文件上传

这次要和别人开发的服务器端程序接口对接,之前实现的上传文件的方法对方接口无法接收。他们的接口需要类似这样的form提交数据:

<form enctype="multipart/form-data" action=http://url/path  method="POST">

<input name="filename” type="file" />

<input type="submit" value="test" />

</form>

解决办法是引入commons-httpclient.jar,下载地址http://hc.apache.org/downloads.cgi,模拟form表单提交数据,代码如下:

File f = new File("device1.png");

PostMethod filePost = new PostMethod( "http://url/path");

Part[] parts = { new FilePart("filename", f)

};

filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost .getParams()));

HttpClient clients = new HttpClient();

int status = clients.executeMethod(filePost);

try {

BufferedReader rd = new BufferedReader(new InputStreamReader(  filePost.getResponseBodyAsStream(), "UTF-8"));

StringBuffer stringBuffer = new StringBuffer();

String line;

while ((line = rd.readLine()) != null) {

stringBuffer .append(line);

}

rd.close();

System.out.println("接受到的流是:" + stringBuffer + "—-" + status);

} catch (Exception e) {

throw new RuntimeException("error”,e);

}

解释一下

filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost .getParams()));

设置多媒体参数,作用类似form表单中的enctype="multipart/form-data" ,

Part[] parts = { new FilePart("filename", f) };

设定参数名称和值,类似form表单中的<input name="filename” type="file" /> 
try catch块主要是打印服务器端回传的数据。

转载于:https://my.oschina.net/weichou/blog/352044

java模拟form表单提交图片文件相关推荐

  1. ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传

    ---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...

  2. Excel 模拟form表单提交

    前端模拟form表单 function batSubmit() {var temp_form = document.createElement("form");//temp_for ...

  3. JS模拟Form表单提交

    用java写了一个下载的功能,测试没有问题,但前台就是不弹出下载的提示框. 后来发现如果你的提交方式是ajax的方式的话是不会弹出提示框的,然后换成了form提交,顺利弹框通过,下来我们就用js模拟f ...

  4. curl模拟form表单提交

    curl模拟form表单提交 一. 首先,最简单的情况是我们只需要提交一个不带文件上传的表单,这种情况下,只需要在curl中使用–data(注意是–不是-)或者它的缩写-d即可. curl -d &q ...

  5. js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题...

    js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...

  6. ajax 表单提交传文件,Ajax提交Form表单及文件上传

    刚刚申请下来的博客,写得第一篇.有点小激动,本人以前是一名工业3D设计师突然有些变故做上了JavaWeb开发: 前几天,发现了一些小问题.我在写后台管理页面时,需要上传一张图片.于是我就用很普通的Fo ...

  7. JS动态模拟Form表单提交数据

    分享知识  传递快乐 JS动态模拟Form表单提交数据 <!DOCTYPE html> <html lang="en"> <head><m ...

  8. 将form表单提交文件修改为ajax提交

    好久没有记录工作中的出现的问题了,不过最近客户提出了新的需求,正好弥补了一下我的短板,学到了新的知识. 周一接到客户电话,要求完善上周写的某个功能--就是同时上传多个图片,并通过接口程序传到第三方系统 ...

  9. 解决Form表单提交文件后台获取为null的情况

    项目想做一个上传文件的功能模块,但是发现后台获取文件始终为null,而且在form表单上也配置好了需要的action属性.method属性和enctype="multipart/form-d ...

  10. django之:网页伪静态 JsonResponse form表单携带文件数据 CBV源码分析 模板语法传值 模板语法之过滤器 标签 自定义标签函数 过滤器、inclusion_tag模板的继承导入

    目录标题 一:网页伪静态 1.定义 2.如何实现 二:视图层 1.视图函数返回值问题 2.视图层返回json格式的数据 3.form表单携带文件数据 4.CBV源码分析 1.CBV和FBV: 2.CB ...

最新文章

  1. Java内存模型与线程(思维导图)
  2. 新手小白零基础搭建个人博客(二)Hexo搭建
  3. 深度剖析Apache Shardingsphere对分布式事务的支持
  4. 赋能普通用户,面向专业级的视频内容制作技术
  5. ASP.NET MVC中,通用的异常处理
  6. 【C++】fill函数,fill与memset函数的区别
  7. Code First 约定
  8. python安装包国内地址
  9. html 灯箱效果,基于 BootStrap 4 的图片灯箱效果 | 智慧宫
  10. 对组件、模块、子系统、系统、框架、架构 定义浅析
  11. matlab 周期卷积,matlab连续时间信号卷积和离散时间信号卷积程序
  12. python3 录屏
  13. 三年精进笃行,用友YonSuite“数智飞轮”高速运转起来了!
  14. Excel学习日记:L21-表格数值格式
  15. 给定起止时间跨年计算周次(oracle函数)
  16. mysql 里的1044错误_MySQL1044错误怎样修改错误?
  17. 东大金智ARM工控主板助力构建新型智慧城市
  18. 一篇文章讲清什么是零知识证明
  19. html首字母检索,js城市首字母拖动检索
  20. 基于java的ftp客户端_基于Java的FTP客户端软件的设计

热门文章

  1. 图像条纹检测 python_光源在外观缺陷检测中的应用
  2. 【面经系列】八位硕博大佬的百度之旅
  3. Prometheus自动发现Exporter实现方案(一看就懂)
  4. 卡方检验用于特征选择
  5. 【ML小结6】关联分析与序列模式关联分析
  6. 乌班图apt添加阿里source
  7. 超级计算机想象作文700字,智能世界想象作文700字
  8. DATEADD日期函数的使用
  9. HBase学习之路 (四)HBase的API操作
  10. robotframe处理日志中文问题