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