HTTP上传文件的boundary
2016-04-05 11:02
351 查看
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.UUID; public class TestQrcode { public static void main(String[] args) throws Exception{ URL url = new URL(“http://localhost:8180/xxxx“); //自己生一个boundary String boundary = UUID.randomUUID().toString().replace(“-“, “”); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod(“POST”); conn.setDoOutput(true); //指定Content-Type为multipart/form-data,并且指定一下boundary conn.setRequestProperty(“Content-Type”, “multipart/form-data; boundary=” + boundary); conn.setReadTimeout(5000); conn.setConnectTimeout(5000); File file = new File(“E:\qr2.jpg”); InputStream is = new FileInputStream(file); OutputStream os = conn.getOutputStream(); //注意注意:这里先发两个横杠哦! os.write((“–” + boundary + “\r\n”).getBytes()); os.write((“Content-Disposition: form-data; name=\”file\”; filename=\”” + file.getName() + “\”\r\n”).getBytes()); os.write(“Content-Type: image/jpeg\r\n\r\n”.getBytes()); byte[] b = new byte[200]; int len = 0; while(-1 != (len = is.read(b))){ os.write(b,0,len); } os.write(“\r\n”.getBytes()); //注意注意:格式是:–boundary–。两个横杠加boundary,然后再有两个横杠 os.write((“–” + boundary + “–\r\n”).getBytes()); os.flush(); os.close(); is.close(); InputStream is2 = conn.getInputStream(); BufferedReader buf = new BufferedReader(new InputStreamReader(is2)); for(String line = buf.readLine(); null != line;line = buf.readLine()){ System.out.println(line); } is2.close(); } }
相关文章推荐
- Android 6.0 使用 Apache HttpClient
- 网络编程的技术要点
- angular学习:npm启动后不能访问http://localhost:8000/
- BP神经网络基本介绍
- 细说垂直型网络爬虫
- java---网络知识点---TCP三次握手连接 断开四次挥手
- HTTP 协议详解
- 多界面公用 检测网络状态
- HTTP深入浅出 http请求
- IDEA -- idea无法导入HttpServlet包解决方法
- Linux Centos 6.5网络启动不起来Bringing up interface eth0: Error:Connection activation failed:Device not man
- HTTP协议的头信息详解
- 用httpPost对JSON发送和接收
- rtp协议详解/rtcp协议详解
- Comet4J(Comet for Java)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式。
- bzoj 1917: [Ctsc2010]星际旅行 树形dp解决树上网络流
- 一次完整的HTTP事务是怎样一个过程
- iOS开发网络篇--NSURLConnection
- HTTP请求和响应中的中文编码问题总结
- 常见HTTP错误代码大全