Java-HttpURLConnectionアップロードファイル
Java Httpurlconnection Upload File
A.Httpファイルのアップロード形式
Html form file upload: Http request post format: POST /xxx HTTP/1.1 Host: x.x.x Content-Length: xxxxxx Content-Type: multipart/form-data boundary=BoundarybXA7KWbsgAx0OB7z --BoundarybXA7KWbsgAx0OB7z (
) Content-Disposition: form-data name='testFile' filename='fileXXX.zip' (
) Content-Type: application/octet-stream (
) (
) ...file content... (
) --BoundarybXA7KWbsgAx0OB7z-- (
)
2. Java-HttpURLConnection
String Boundary = UUID.randomUUID().toString() // file boundary / / 1. Open the Http connection HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection() conn.setConnectTimeout(10*1000) conn.setDoOutput(true) // allow output // 2.Http request line/header conn.setRequestMethod('POST') conn.setRequestProperty('Charset', 'utf-8') conn.setRequestProperty('Content-Type', 'multipart/form-data boundary='+Boundary) // 3.Http request body DataOutputStream out = new DataOutputStream(conn.getOutputStream()) out.writeUTF('--'+Boundary+'
' +'Content-Disposition: form-data name='file' filename='filename'
' +'Content-Type: application/octet-stream charset=utf-8'+'
') InputStream in = new FileInputStream(file) byte[] b = new byte[1024] int l = 0 While((l = in.read(b)) != -1) out.write(b,0,l) // Write to file out.writeUTF('
--'+Boundary+'--
') out.flush() out.close() in.close() // 4.Http response BufferedReader bf = new BufferedReader(new InputStreamReader(conn.getInputStream(),'utf-8')) String line = null while ((line=bf.readLine())!=null) { System.out.println(line) }
短い本: http://www.jianshu.com/p/6420017756fb
CSDNブログ: http://blog.csdn.net/qq_32115439/article/details/77073415
GitHubブログ: http://lioil.win/2016/05/12/HttpURLConnection-upLoadFile.html
コーディングブログ: http://c.lioil.win/2016/05/12/HttpURLConnection-upLoadFile.html