前言:
今天各位老铁们对“java请求报文文档怎么写”都比较着重,咱们都想要剖析一些“java请求报文文档怎么写”的相关文章。那么小编在网摘上收集了一些关于“java请求报文文档怎么写””的相关内容,希望姐妹们能喜欢,咱们一起来了解一下吧!POST报文格式
POST /api/feed/ HTTP/1.1
Accept-Encoding: gzip
Content-Length: 225873
Content-Type: multipart/form-data; boundary=-------3cb6q348891v0
Host:
Connection: Keep-Alive
---------3cb6q348891v0
Content-Disposition: form-data; name="userId"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
623bd5345abaf75e9a84939a
---------3cb6q348891v0
Content-Disposition: form-data; name="nickName"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
ddedhouqnickname
---------3cb6q348891v0
Content-Disposition: form-data; name="images"; filename="/Users/xiawenquan/Desktop/ip数据报文.png"
Content-Type: application/octet-stream
这里是图片的二进制数据
---------3cb6q348891v0--
这里咱们提交的是userId、nickName和一张图片
post报文格式分析
#请求的请求方式 请求的子路径 HTTP协议的版本号
POST /api/feed/ HTTP/1.1
###########请求头信息##########
#服务器返回的数据须要使用gzip压缩
Accept-Encoding: gzip
#请求的内容长度为4579876
Content-Length: 4579876
#内容的类型为"multipart/form-data",请求参数分隔符(boundary)为-------3cb6q348891v0
Content-Type: multipart/form-data; boundary=-------3cb6q348891v0
#请求的根域名
Host:
#HTTP连接方式为持久链接,Keep-Alive功能使客户端到服务器端的链接持续有效,当出现对服务器的后续请求时,Keep-Alive功能避免了创建或者从新创建链接
Connection: Keep-Alive
#\r--回车符(return),回到一行的开头,\n--换行符(newline),另起一行
\r\n
#这样的格式:-- + boundary(boundary用于做为请求参数之间的界限标识),无论boundary自己有没有这个"--",开头"--"不能省略
---------3cb6q348891v0
Content-Disposition: form-data; name="userId"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
\r\n
623bd5345abaf75e9a84939a
\r\n
\r\n
---------3cb6q348891v0
Content-Disposition: form-data; name="images"; filename="/Users/xiawenquan/Desktop/ip数据报文.png"
Content-Type: application/octet-stream
这里是图片的二进制数据
---------3cb6q348891v0--
参数实体的最后一行是: --加上boundary加上--,最后换行
----使用纯java模拟post文件上传的报文------
public static void main(String[] args) { String filePath="/Users/xiawenquan/Desktop/ip数据报文.png"; String unid="623bd5345abaf75e9a84939a"; DataOutputStream out = null; final String newLine = "\r\n"; final String prefix = "--"; try { URL url = new URL(";); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); String BOUNDARY = "------3cb6q348891v0"; conn.setRequestMethod("POST"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("Charsert", "UTF-8"); conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); out = new DataOutputStream(conn.getOutputStream()); // 添加参数file File file = new File(filePath); StringBuilder sb1 = new StringBuilder(); sb1.append(prefix); sb1.append(BOUNDARY); sb1.append(newLine); sb1.append("Content-Disposition: form-data;name=\"file\";filename=\"" + file.getName() + "\"" + newLine); sb1.append("Content-Type:application/octet-stream"); sb1.append(newLine); sb1.append(newLine); out.write(sb1.toString().getBytes()); DataInputStream in = new DataInputStream(new FileInputStream(file)); byte[] bufferOut = new byte[1024]; int bytes = 0; while ((bytes = in.read(bufferOut)) != -1) { out.write(bufferOut, 0, bytes); } out.write(newLine.getBytes()); in.close(); // 添加参数userId StringBuilder sb = new StringBuilder(); sb.append(prefix); sb.append(BOUNDARY); sb.append(newLine); sb.append("Content-Disposition: form-data;name=\"userId\""); sb.append(newLine); sb.append(newLine); sb.append("623bd5345abaf75e9a84939a"); out.write(sb.toString().getBytes()); // 添加参数nickName StringBuilder sb = new StringBuilder(); sb.append(prefix); sb.append(BOUNDARY); sb.append(newLine); sb.append("Content-Disposition: form-data;name=\"nickName\""); sb.append(newLine); sb.append(newLine); sb.append("ddedhouqnickname"); out.write(sb.toString().getBytes()); byte[] end_data = ("\r\n--" + BOUNDARY + "--\r\n").getBytes(); // 写上结尾标识 out.write(end_data); out.flush(); out.close(); // 定义BufferedReader输入流来读取URL的响应 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (Exception e) { System.out.println("发送POST请求出现异常!" + e); e.printStackTrace(); } }
标签: #java请求报文文档怎么写