1. 程式人生 > >java 利用common-httpclient包來實現post請求

java 利用common-httpclient包來實現post請求

專案中需要請求第三方介面,而且要求請求引數資料為json型別的。本來首先使用的是httpclient的jar包,但是因為專案中已經使用了common-httpclient的jar包,引起了衝突,所以不得不使用common-httpclient來實現。

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL
; import java.net.URLConnection; import java.util.List; import java.util.Map; import java.util.zip.GZIPInputStream; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient
.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.methods.StringRequestEntity; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HTTPUtils { private static Logger logger = LoggerFactory.getLogger
(HTTPUtils.class); /** * post請求 * @param url * @param json * @return */ public static String postJosnContent(String url, String Json) throws Exception { // HttpPost method = new HttpPost(url); // DefaultHttpClient httpClient = new DefaultHttpClient(); // String ret = null; // try { // StringEntity entity = new StringEntity(Json,"UTF-8");//解決中文亂碼問題 // entity.setContentEncoding("UTF-8"); // entity.setContentType("application/json"); // method.setEntity(entity); // HttpResponse result = httpClient.execute(method); // ret = EntityUtils.toString(result.getEntity()); // } catch (Exception e) { // throw e; // } finally { // method.releaseConnection(); // } // return ret; logger.error("請求介面引數:" + Json); PostMethod method = new PostMethod(url); HttpClient httpClient = new HttpClient(); try { RequestEntity entity = new StringRequestEntity(Json,"application/json","UTF-8"); method.setRequestEntity(entity); httpClient.executeMethod(method); logger.error("請求介面路徑url:" + method.getURI().toString()); InputStream in = method.getResponseBodyAsStream(); //下面將stream轉換為String StringBuffer sb = new StringBuffer(); InputStreamReader isr = new InputStreamReader(in, "UTF-8"); char[] b = new char[4096]; for(int n; (n = isr.read(b)) != -1;) { sb.append(new String(b, 0, n)); } String returnStr = sb.toString(); return returnStr; } catch (Exception e) { e.printStackTrace(); throw e; } finally { method.releaseConnection(); } } }

相關推薦

java 利用common-httpclient實現post請求

專案中需要請求第三方介面,而且要求請求引數資料為json型別的。本來首先使用的是httpclient的jar包,但是因為專案中已經使用了common-httpclient的jar包,引起了衝突,所以不得不使用common-httpclient來實現。 impo

Java學習之HttpClient的GET與POST請求

create ppa user 構建 依賴 cut nal cdc array 這篇隨筆記錄了HttpClient的GET和POST請求 使用maven構建依賴包,我使用的版本是4.5.3 <dependency> <groupId>org.apa

java apache commons HttpClient傳送get和post請求的學習整理

HttpClient 是我最近想研究的東西,以前想過的一些應用沒能有很好的實現,發現這個開源專案之後就有點眉目了,令人頭痛的cookie問題還是有辦法解決滴。在網上整理了一些東西,寫得很好,寄放在這裡。 HTTP 協議可能是現在 Internet 上使用得最多、最重要

Java使用HttpClient實現Post請求

cut 4.4 session dex exception () http tostring instance http://www.cnblogs.com/mengrennwpu/p/6418114.html *******************************

java實現post請求(PostMethod)

postmethod json項目要求:實現post請求,且請求格式是json格式。maven依賴包<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>ht

java——利用生產者消費者模式思想實現簡易版handler機制

參考教程:http://www.sohu.com/a/237792762_659256 首先介紹每一個類: 1.Message:   這個類的作用是儲存一個生產者生產出來的具體的訊息,就類似連結串列佇列中的一個節點,自行定義需要儲存的內容。   code:訊息要執行的具體動作程式碼   msg:訊息

利用spring的AOP實現Redis快取

為什麼使用Redis 資料查詢時每次都需要從資料庫查詢資料,資料庫壓力很大,查詢速度慢,因此設定快取層,查詢資料時先從redis中查詢,如果查詢不到,則到資料庫中查詢,然後將資料庫中查詢的資料放到redis中一份,下次查詢時就能直接從redis中查到,不需要查

java利用iText工具生成PDF

iText是一個非常著名的能夠快速產生PDF檔案的Java類庫。支援文字,表格,圖形的操作,可以方便的跟 Servlet 進行結合    iText的更新變化很大,早期版本在PDF樣式上可能會有瑕疵,所有我使用的最新的5.5.6包 轉載出自:https://my

java HttpClient傳送get和post請求

    最近需要用到在A專案裡面發起請求去請求B專案的介面,所以用到了HttpClient,將工具類記錄下,可設定get、post方式,也可以設定session和cookie等header 一、工具類HttpClientUtil package Utils; imp

Java IO操作--壓縮zip實現工具類

壓縮檔案大致可以分為三種:ZIP、JAR、GZ。 壓縮流 在日常的使用中經常會使用到像WinRAR或WinZIP這樣的壓縮檔案,通過這些軟體可以把一個很大的檔案進行壓縮以方便傳輸。 在JAVA中 為了減少傳輸時的資料量也提供了專門的壓縮流,可以將檔案或資料夾壓縮成ZI

利用htmlunit和jsoup實現爬取js的動態網頁實踐(執行js)

更新,這就尷尬了,這篇文章部落格閱讀文章最多,但是被踩得也最多。 爬取思路: 所謂動態,就是通過請求後臺,可以動態的改變相應的html頁面,頁面並不是一開始就全部展現出來的。 大部分操作都是通過請求完成的,一次請求,一次返回。而在大多數網頁中請求往往都被開發者隱藏在了js程

java利用jdbc連線Mysql資料庫——實現登入註冊功能

實現功能如下: ①0選中註冊,若使用者名稱相同則註冊失敗,重新選擇 ②若使用者名稱不存在則儲存到資料庫 ③1選中登入,若使用者名稱和密碼符合時,登入成功。 程式碼如下: package com.lucfzy; import java.sql.Connection; imp

安卓開發-利用smart-image-view實現網路中的圖片在手機上的顯示

1.在專案中匯入smart-image-view的檔案如圖: 2.在activity_main.xml中,引入SmartImageView: <com.loopj.android.im

利用Rocketmq4.2版實現分散式事務

花了點時間學了RocketMQ,下面是本人的一點點心得,如果覺的寫的好就點個贊,但如果你要借鑑話,我還是勸你看下面參考資料裡的視訊(作者為阿里牛人),雖然他分享的視訊是為了推銷阿里雲的DRDS、ONS(RocketMQ阿里版),只是講了個大概,沒有細說,但是指明一個大的方向,

EXCEL 中利用 INDEX 和match 實現多條件查詢

1: 先建立一個sheet: 2: 測試:有兩個人叫同一個“胡天”,只是來自不同的省份: 先測試一下match: MATCH(A24&B24,A2:A16&B2:B16,0) 注意是 要 ctrl + shift + enter 一起按下去,才生效。看到

利用SpringMVC的AOP實現後臺系統的操作日誌記錄

最近在專案中要求把後臺的一些關鍵操作記錄下來,想了好半天能想到的也就那兩三種方式,要麼就是寫一個攔截器,然後再web.xml裡面進行配置,要麼就是就是在每個需要記錄操作日誌的程式碼裡面進行攔截,最後我選擇了第三種,也就是基於AOP的攔截,用這種方式,只需要在需記

cocos2dx 利用遮罩層實現地圖的簡單尋路

談到地圖不少人都說要做地圖編輯器了,但是我暫時繞過這一步,如果不用尋路地圖就不能移動?尋路就是會繞過障礙物的演算法。 我做了一個簡單的地圖的思想,就是地圖分層3層:背景層、可行區域層、遮罩層,但是地圖就不尋路了,通過設定可行區域層來 實現地圖障礙物的方法。下面看一個檢視,

java--利用集合List和Set實現簡易版學生選課系統

 //建立學生類 import java.util.HashSet; import java.util.Set; public class student {  String id;        //學號  String sname;     //學生姓名  pu

利用【mapreduce】實現——【wordcount的設計思路】

1.wordcount示例開發 map階段:將每行文字資料變成<單詞,1>這樣的k,v資料 reduce

java發送http的get、post請求

itl 關閉 print eal adl conn trace 分享 src java發送http的get、post請求 Http請求類 package wzh.Http; import java.io.BufferedReader; import java.io.