求救:http请求怎么携带上传附件啊??请各位高手指点

Jales 2008-03-30 11:21:03
我想实现一个通过HttpURLConnection发出的http 请求携带附件上传功能,现在不会,请高手指点

本人写的http请求客户端和服务端是通过xml来交互的(不是soap,协议是自定义的),xml的格式已经定好了,不能再改动了,但想要增加一个随请求上传附件(纯文本)的功能,就是说要在一次http请求中携带附件给服务端,向各位高手请教!!
急!!!!急!!!急!!!
...全文
333 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhsjun 2008-04-01
  • 打赏
  • 举报
回复
首先在请求头header中增加一个mutilpart分割串,然后增加post
Content-Type: multipart/form-data; boundary=---------------------------7d83e1610035e这是头部
Content-Length: 大小
传送内容:
-----------------------------7d83e1610035e
Content-Disposition: form-data; name="file1"; filename="C:\tylesheet.css"
Content-Type: text/plain
//这里是内容
//内容结束
-----------------------------7d83e1610035e--
kokobox 2008-04-01
  • 打赏
  • 举报
回复


根据http协议提交file类型,在http1.1信息头里也是把你要上传文件的路径带上,并附带是FIle类型,也是在服务器端再次下载的。

比如Struts和servlet,提交上去之后也是得到输入流然后......

你想想form表单提交的时候,file类型在服务器端是怎么处理的,也是再根据流循环读取的吧。

你用HttpURLConnection也是要遵循http协议的吧
Jales 2008-03-31
  • 打赏
  • 举报
回复
我是把xml和附件通过一次http请求传递给服务端,现在xml已经占据了http 请求包体,附件应该放在请求包的那个部分来传递,怎样传递呢?/
xlongbuilder 2008-03-31
  • 打赏
  • 举报
回复
xml的格式已经定好了

那就没有办法了

kokobox 2008-03-31
  • 打赏
  • 举报
回复
xml里写好要文件的路径

比如http://www.163.com/zip/down.zip

找这个url
比如:<zipUrl>http://www.163.com/zip/down.zip</zipUrl>

当服务器端读xml解析到<zipUrl>的时候对找个路径进行下载

URL url = new URL("http://www.163.com/zip/down.zip");
HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();

httpConnection.setRequestProperty("User-Agent","NetFox");

InputStream input = httpConnection.getInputStream();

....................

这样就可以了,你也可以用多线程断点续传,那样更快更好。如果你一定在提交的时候带附件的话,那么你就去看看http1.1信息头,里面写的也很详细。


老紫竹 2008-03-31
  • 打赏
  • 举报
回复
我推荐你用HttpClient 来模拟带附件的POST上传,
官方网页为 http://hc.apache.org/httpclient-3.x/methods/multipartpost.html
tottidj 2008-03-31
  • 打赏
  • 举报
回复
关注中。。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧