1. 程式人生 > >Java HttpClient 傳送multipart/form-data帶有Json檔案的Post請求

Java HttpClient 傳送multipart/form-data帶有Json檔案的Post請求

Java HttpClient 傳送multipart/form-data帶有Json檔案的Post請求

說明:傳送multipart/form-data帶有Json檔案的Post請求,檔案內容其實就是json字串,這種請求之前都是通過postman發的,見postman截圖:

目前但是要做介面自動化測試,所以須用程式碼實現。

直接貼程式碼:
(需要至少2個jar包:httpclient-4.5.3.jar,httpmime-4.3.jar)

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class HttpMultipartFormdataDemo1 {

	public static void main(String[] args) throws ClientProtocolException, IOException {
		// 檔案sTestsetFile:solr_etl_agent35.json是存有JSON字串的檔案
		String sTestsetFile=System.getProperty("user.dir")+File.separator+"testdata"+File.separator+"solr_etl_agent35.json";
		String sURL="http://172.16.101.46:14401/editorialincre";
		
		CloseableHttpClient httpClient = HttpClients.createDefault();
		HttpPost uploadFile = new HttpPost(sURL);
		
		MultipartEntityBuilder builder = MultipartEntityBuilder.create();
		builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);

		// 把檔案加到HTTP的post請求中
		File f = new File(sTestsetFile);
		builder.addBinaryBody(
		    "file",
		    new FileInputStream(f),
		    ContentType.APPLICATION_OCTET_STREAM,
		    f.getName()
		);

		HttpEntity multipart = builder.build();
		uploadFile.setEntity(multipart);
		CloseableHttpResponse response = httpClient.execute(uploadFile);
		HttpEntity responseEntity = response.getEntity();
		String sResponse=EntityUtils.toString(responseEntity, "UTF-8");
		System.out.println("Post 返回結果"+sResponse);
	}

}

在這做個記錄,同時也能給大家參考。

相關推薦

Java HttpClient 傳送multipart/form-data帶有Json檔案Post請求

Java HttpClient 傳送multipart/form-data帶有Json檔案的Post請求說明:傳送multipart/form-data帶有Json檔案的Post請求,檔案內容其實就是j

HttpClientmultipart/form-data上傳檔案

封裝的方法:public static String postFileMultiPart(String url,Map<String,ContentBody> reqParam) throws ClientProtocolException, IOException{ Closea

HttpClient:模擬表單提交檔案傳送multipart/form-data資料

使用HttpClient來模擬表單提交,傳送檔案 常用於非web客戶端與web後端傳輸檔案 1.pom <dependencies> <!-- https://m

requests傳送multipart/form-data請求(檔案)

在寫爬蟲有時候會發現這種請求資料,其實就是一個上傳圖片的請求。 def send_file(user,user_key,tousername,file,cookice): ''' 傳送檔案表情之類 :param user: 傳送訊息的使用者 [{'FromUserName

Httpclientmultipart/form-data形式post上傳檔案及提交引數

在大學裡由於要做某些英語聽力作業,是在PC客戶端上的,而做完提交後顯示的答案又沒辦法複製,再重新填寫的話答案就消失了,所以懶得去記,好在答案圖片並不複雜,便想做一個可以識別出圖片中的英文的小軟體。因為我自己並沒有做OCR的經驗,於是我就到網上找可以線上識別文字的網站,找著找著

Python 傳送 multipart/form-data 資料

前言 最近做知乎模擬登入的時候,碰到一個很奇怪的引數型別,與一般的鍵值對不同,大概長這樣: ------WebKitFormBoundaryA0Srut8TBztAofvx Content-Disposition: form-data; name="cl

解決python傳送multipart/form-data請求上傳檔案的問題

    #coding=utf8 import requests from uuid import uuid4 import os file_name='test' url= boundary=uuid4().hex header={'Content-Typ

使用python的requests 傳送multipart/form-data 請求

 網上關於使用python 的傳送multipart/form-data的方法,多半是採用 ulrlib2 的模擬post方法,如下: import urllib2 boundary='-------------------------7df3069603d6' data=

python requests傳送multipart/form-data編碼

安裝requests_toolbelt pip install requests-toolbelt 程式碼 傳送檔案中的資料 from requests_toolbelt imp

.Net使用HttpClientmultipart/form-data形式post上傳檔案及其相關引數

  目錄導航:      前言:      什麼是multipart/form-data請求:      Html上傳圖片按鈕:

HTTP form表單提交數據(enctype="multipart/form-data" method="post")的服務端處理

keyword -s detail put form表單 表單提交 class eth ron 參考鏈接:http://blog.csdn.net/u010018421/article/details/52833346 <form action="fileUpload

HTTP multipart/form-data格式之檔案上傳

報文格式如下: --${bound}   Content-Disposition: form-data; name="Filename" HTTP.pdf   --${bound}   Content-Disposition: form-data; name="fil

python通過http(multipart/form-data)上傳檔案的方法

之前寫過一篇部落格,說的如何python如何通過http下載檔案,今天寫一篇部落格來介紹如下,python如何通過request庫實現上傳檔案 這裡主要是解決multipart/form-data這種格式的檔案上傳,基本現在http協議上傳檔案基本上都是通過這種格式上傳 一、思路 一般情況下,如果我們往一個地

四種常見的 POST 提交數據方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml)

.org api 低版本 數據格式 orb 交互 文件類型 告訴 eba HTTP/1.1 協議規定的 HTTP 請求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 這幾種。其中 POST 一般用來向服務端提交數據,本

multipart/form-data 獲取form-data資料--java

表單資料都儲存在http的正文部分,各個表單項之間用boundary隔開。格式類似於下面這樣:用request.getParameter是取不到資料的,這時需要通過request.getInputStream來取資料,不過取到的是個InputStream,所以無法直接獲取指定的表單項(需要自己對取到

Multipart/form-data POST檔案上傳詳解 理論 簡單的HTTP POST 大家通過HTTP向伺服器傳送POST請求提交資料,都是通過form表單提交的,程式碼如下:

Multipart/form-data POST檔案上傳詳解 理論 簡單的HTTP POST 大家通過HTTP向伺服器傳送POST請求提交資料,都是通過form表單提交的,程式碼如下: <form method="post"action="http://w.soh

騰訊雲OCR身份證識別 multipart/form-data和application/json 格式方法實現

鑑權簽名方法類: package com.x.common.utils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; import java.util.R

C# HttpClient上傳檔案到伺服器(multipart/form-data)

string reqUrl = JsonrpcHttpClient.MakeRpcUrl(typeof(Wfm_SimReport).Name, "save"); using (HttpClient client = new HttpClient(new HttpClientHandler() {

使用java的過濾器filter備忘(post multipart/form-data

測試中介軟體是weblogic8.1.4,jdk 是weblogic 自帶的1.42 在Filter 的具體程式碼中一定要對錶單的型別進行判斷 "post".equals(request.getMethod().toLowerCase())               

multipart/form-data 獲取form-data資料--java

表單資料都儲存在http的正文部分,各個表單項之間用boundary隔開。格式類似於下面這樣:用request.getParameter是取不到資料的,這時需要通過request.getInputStream來取資料,不過取到的是個InputStream,所以無法直接獲取指定