亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java模擬發送form-data的請求方式

瀏覽:70日期:2022-09-02 09:51:49

我就廢話不多說了,大家還是直接看代碼吧!

package com.silot.test; import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.mime.HttpMultipartMode;import org.apache.http.entity.mime.MultipartEntity;import org.apache.http.entity.mime.content.StringBody;import org.apache.http.impl.client.DefaultHttpClient; import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.nio.charset.Charset; public class TestCli{ public static void main(String args[]) throws Exception { MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, '------------------------------0ea3fcae38ff', Charset.defaultCharset()); multipartEntity.addPart('skey', new StringBody('哈哈哈哈哈', Charset.forName('UTF-8'))); multipartEntity.addPart('operator', new StringBody('啦啦啦啦', Charset.forName('UTF-8'))); multipartEntity.addPart('VrfKey', new StringBody('渣渣渣', Charset.forName('UTF-8'))); multipartEntity.addPart('StatCode', new StringBody('00', Charset.forName('UTF-8'))); multipartEntity.addPart('mass_id', new StringBody('1234', Charset.forName('UTF-8'))); multipartEntity.addPart('reference_id', new StringBody('21231544', Charset.forName('UTF-8'))); HttpPost request = new HttpPost('http://xiefei.s1.natapp.cc/v1/withdrawCallback'); request.setEntity(multipartEntity); request.addHeader('Content-Type', 'Content-Disposition: form-data; boundary=------------------------------0ea3fcae38ff'); DefaultHttpClient httpClient = new DefaultHttpClient(); HttpResponse response = httpClient.execute(request); InputStream is = response.getEntity().getContent(); BufferedReader in = new BufferedReader(new InputStreamReader(is)); StringBuffer buffer = new StringBuffer(); String line = ''; while ((line = in.readLine()) != null) { buffer.append(line); } System.out.println('發送消息收到的返回:' + buffer.toString()); }}

補充知識:java模擬復雜表單post請求

java模擬復雜表單post請求

能支持文件上傳

/** * 支持復雜表單,比如文件上傳 * @param formParam * @return * @throws Exception */public static String postWithForm(FormParam formParam) throws Exception {String url = formParam.getUrl();String charset = 'UTF-8';String boundary = Long.toHexString(System.currentTimeMillis()); // Just generate some unique random value.String CRLF = 'rn'; // Line separator required by multipart/form-data.URLConnection connection = new URL(url).openConnection();connection.setDoOutput(true);connection.setRequestProperty('Content-Type', 'multipart/form-data; boundary=' + boundary);try (OutputStream output = connection.getOutputStream();PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, charset), true);) {// make body paramMap<String, String> bodyParam = formParam.getBodyParam();if (null != bodyParam) {for (String p : bodyParam.keySet()) {writer.append('--' + boundary).append(CRLF);writer.append('Content-Disposition: form-data; name='' + p + ''').append(CRLF);writer.append('Content-Type: text/plain; charset=' + charset).append(CRLF);writer.append(CRLF).append(bodyParam.get(p)).append(CRLF).flush();}}// Send file.Map<String, File> fileParam = formParam.getFileParam();if (null != fileParam) {for (String fileName : fileParam.keySet()) {writer.append('--' + boundary).append(CRLF);writer.append('Content-Disposition: form-data; name='' + fileName + ''; filename=''+ fileParam.get(fileName).getName() + ''').append(CRLF);writer.append('Content-Type: ' + URLConnection.guessContentTypeFromName(fileName)).append(CRLF);writer.append('Content-Transfer-Encoding: binary').append(CRLF);writer.append(CRLF).flush();Files.copy(fileParam.get(fileName).toPath(), output);output.flush(); // Important before continuing with writer!writer.append(CRLF).flush(); // CRLF is important! It indicates end of boundary.}}// End of multipart/form-data.writer.append('--' + boundary + '--').append(CRLF).flush();}HttpURLConnection conn = (HttpURLConnection) connection;ByteArrayOutputStream bout = new ByteArrayOutputStream();int len;byte[] buffer = new byte[1024];while ((len = conn.getInputStream().read(buffer)) != -1) {bout.write(buffer, 0, len);}String result = new String(bout.toByteArray(), 'utf-8');return result;}

FormParam封裝類:

package net.riking.core.utils;import java.io.File;import java.util.Map;public class FormParam {private String url;//private String auth;///**// * http請求頭里的參數// *///private Map<String, String> headerParam;/** * 常規參數 */private Map<String, String> bodyParam;/** * 待上傳的文件參數 filename和file */private Map<String, File> fileParam;public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}//public String getAuth() {//return auth;//}////public void setAuth(String auth) {//this.auth = auth;//}////public Map<String, String> getHeaderParam() {//return headerParam;//}////public void setHeaderParam(Map<String, String> headerParam) {//this.headerParam = headerParam;//}public Map<String, String> getBodyParam() {return bodyParam;}public void setBodyParam(Map<String, String> bodyParam) {this.bodyParam = bodyParam;}public Map<String, File> getFileParam() {return fileParam;}public void setFileParam(Map<String, File> fileParam) {this.fileParam = fileParam;}}

以上這篇java模擬發送form-data的請求方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 泄欲网站免费观看 | 一级毛片私人影院老司机 | 91精品国产三级在线观看 | 国产成人高清在线 | 国产在线不卡视频 | 国产免费资源高清小视频在线观看 | 婷婷丁香视频 | 欧洲美女大片免费播放器视频 | 亚洲一区二区三区播放在线 | 97影院午夜午夜伦不卡 | 亚洲 日本 欧美 日韩精品 | 免费看片免 | 在线视频久| 国产99区 | 国产正在播放 | 成人免费视频观看无遮挡 | 免费又黄又粗又爽大片 | 中文字幕日本在线视频二区 | 成人性爱视频在线观看 | 精品国产一区二区三区久久影院 | 欧美日韩国产亚洲一区二区三区 | 国产三级久久久精品麻豆三级 | 成 人 免费 黄 色 视频 | 日本一级二级三级久久 | 精品福利一区二区三区 | 老外黑人一级毛片 | 国产成人精品永久免费视频 | 东京一区二区三区高清视频 | 国产在视频线精品视频www666 | 美女污污网站 | 国产精品久久久久久亚洲小说 | 西川结衣在线精品视频 | 五月婷婷亚洲综合 | 精品在线99 | 黄色三级网站在线观看 | 99在线精品日韩一区免费国产 | 久青草青综合在线视频 | 国产精品欧美日韩视频一区 | 久久久久美女 | 亚洲欧美一区二区久久香蕉 | 日本三级带日本三级带黄国产 |