HttpClient以json形式的引數呼叫http介面並對返回的json資料進行處理(可以帶檔案)
主要使用的jar包有httpclient-4.5.3.jar、httpcore-4.4.6.jar、commons-codec-1.9.jar、gson-2.2.4.jar和commons-logging-1.2.jar。
如果傳送的post請求想傳送檔案,需新增httpmime-4.5.3.jar包,並設定如下程式碼:
HttpEntity multipartEntityBuilder = MultipartEntityBuilder.create().addBinaryBody("file", new File("D:\\workspace\\programm\\WebContent\\programm\\1991.zip")).build();
第一個引數表示請求欄位名,第二個引數就是檔案。
還想新增引數則
HttpEntity multipartEntityBuilder = MultipartEntityBuilder.create().addTextBody("name", "張三").addBinaryBody("file", new File("D:\\workspace\\programm\\WebContent\\programm\\1991.zip")).build();
httpPost.setEntity(multipartEntityBuilder);
import java.io.IOException;import java.util.Map; 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.StringEntity; import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import com.google.gson.Gson; public class HttpClientUtil { private final static String CONTENT_TYPE_TEXT_JSON = "text/json"; public static String postRequest(String url, Map<String, Object> param) throws ClientProtocolException, IOException{ CloseableHttpClient client = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url); httpPost.setHeader("Content-Type", "application/json;charset=UTF-8"); Gson gson = new Gson(); String parameter = gson.toJson(param); StringEntity se = new StringEntity(parameter); se.setContentType(CONTENT_TYPE_TEXT_JSON); httpPost.setEntity(se); CloseableHttpResponse response = client.execute(httpPost); HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity, "UTF-8"); return result; } }
2、返回的結果也可以使用gson轉換成物件進行下一步操作。
import com.google.gson.Gson; public class GsonUtil { public static <T> T jsonToObject(String jsonData, Class<T> type) { Gson gson = new Gson(); T result = gson.fromJson(jsonData, type); return result; } public static void main(String[] args) { String json = "{'id':'1','name':'zhang','address':'Hubei'}"; jsonToObject(json, Person.class); Person person = jsonToObject(json, Person.class); System.out.println(person); } }
建立要轉成的物件的類。
import java.util.Date; public class Person { private int id; private String name; private int age; private String address;public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + "]"; } }
3、傳送以鍵值對形式的引數的post請求
package com.avatarmind.httpclient; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; public class HttpClient3 { public static void main(String[] args) throws Exception { CloseableHttpClient client = HttpClients.createDefault(); String url = "http://yuntuapi.amap.com/datamanage/table/create"; HttpPost httpPost = new HttpPost(url); // 引數形式為key=value&key=value List<NameValuePair> formparams = new ArrayList<NameValuePair>(); formparams.add(new BasicNameValuePair("key", "060212638b94290e3dd0648c15753b64")); formparams.add(new BasicNameValuePair("name", "火狐")); // 加utf-8進行編碼 UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8"); httpPost.setEntity(uefEntity); CloseableHttpResponse response = client.execute(httpPost); HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity, "UTF-8"); System.out.println(result); } }
相關推薦
HttpClient以json形式的引數呼叫http介面並對返回的json資料進行處理(可以帶檔案)
1、引數的url就是被呼叫的地址,map是你要傳的引數。引數轉成json我使用的是gson方式轉換的。 主要使用的jar包有httpclient-4.5.3.jar、httpcore-4.4.6.jar、commons-codec-1.9.jar、gson-2.2.4
arcengine 連線sde,並對sde內資料進行管理(增刪改)
1、連線sde,用的是連線檔案,怎麼建立連線檔案,arcgis 工具箱, 如果service引數使用的預設的埠號5151,則必須在建立連線檔案之前必須建立和開啟sde服務,而如果使用sde:sqlserver:ip地址或計算機名,則不需要建立和開啟服務。 locati
java呼叫http介面並解析返回的json物件
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import jav
使用httpclient傳遞java引數呼叫http介面
使用的Jar包: <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><ver
Jquery form.js文件上傳返回JSON數據,在IE下提示下載文件的解決辦法,並對返回數據進行正確的解析
設置 解析 轉換 解決 pla esp 下載 ring 上傳 Jquery from.js插件上傳文件非常方便,但是在ie10以下的版本會彈出下載文件對話框 解決方法: 1、在服務端設置response.setContentType("text/plain"); 2、對返回
基於restful-api介面如何對返回json資料個性化輸出
一:應用背景在介紹功能之前,先說一下工作中遇到的問題。專案中服務端提供restful api介面給前端網站、h5和app端使用,通過http請求返回json資料。目前存在一個A介面,因前期業務需要輸出50個業務屬性供app端業務開發,現在h5也有相似需求需要用到A介面,不同的
呼叫restFul介面如何實現返回的資料編碼格式為utf-8
呼叫介面的時候restful介面的時候返回的資料格式一直是亂碼??????????如何解決:在介面上面添加註釋:@RequestMapping(value = "/userlogin",produces = "application/json; charset=utf-8")
java匯入excle表格,並且對錶格進行相應的修改,並對錶格資料進行整理,最後匯出本地表格等一系列操作
1.首先建立一個java專案 2.匯入以下jar包 3.程式碼如下 public class auto_date { private static List<List<String>> readExcel(File file) throws Exception
java匯入excle表格,並且對錶格進行相應的修改,並對錶格資料進行整理,最後匯出本地表格等一系列
1.首先建立一個java專案 完成效果如下圖所示 2.匯入以下jar包 3.程式碼如下 其中行和列的操作是根據需求自動劃分的 複製程式碼1 public class auto_date {2 private static List<List<String>> read
【Spring-boot 】FastJson對json資料進行解析(型別轉換)
序列化序列化就是指 把JavaBean物件轉成JSON格式的字串。將Map轉成JSON將List<Map>轉成JSON。自定義JavaBean User轉成JSON。String objJson = JSON.toJSONString(Object object)
JQuery返回Json日期格式的問題 jquery對時間/Date(1387900800000)進行處理
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1 function DataBindToMemberDetailDialog(me
建立一個加密表空間並對錶內資料進行加密的示例
基於表空間的加密概念 對整個表空間進行加密,表空間中的所有物件都是加密的,例如 在加密表空間上建立一個表,表的所有欄位都是加密狀態,適用Oracle11gR2以上版本。 表空間加密資料的優點:不會再收到欄位加密的限制,例如 欄位型別,索引型別,需要設定no salt才可見索
在ListView中動態新增EditText並對其中的資料進行儲存和由於複用引起的Editext中的內容顯示異常的解決方案
public class AddAdapter extends BaseAdapter { private Context context; //需要增加的條目用一個Map儲存 private Map edItem; //記錄增加的條目數,作為下標給deItem賦值,可以不要
SqlServer2000 呼叫Http介面的儲存過程
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO create Proc &nb
spring restTemplate呼叫http介面的使用
spring 封裝了模擬http請求傳送的呼叫: 工具類: package com.tencent.sendmail.utils; import org.springframework.http.*; import org.springframework.util.Mul
呼叫http介面方式
public static void main(String[] args) throws Exception{ //介面地址 String path = "http://ip:埠/resource_manager/user/login";
如何呼叫http介面通過get()/post()方法傳參
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.
Java 呼叫http介面
public static void main(String[] args) throws Exception { //請求的webservice的url URL url = new URL("http://"); //建立http連
JAVA 呼叫HTTP介面POST或GET實現方式
package com.yoodb.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import org.apac
java 呼叫http介面兩種方式
import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.Input