HTTP上传文件的boundary

来源:互联网 发布:continue在c语言 编辑:程序博客网 时间:2024/05/22 17:39
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(); } }
0 0
原创粉丝点击