java傳送http請求例項
//請求端
@RequestMapping ("/confirmPrivacyInfo")
@ResponseBodypublic String confirmPrivacyInfo (HttpServletResponse response, HttpServletRequest request)
{
Map <String, Object> resultMap = new HashMap <String, Object> ();
String uuId = request.getParameter ("uuId");// 獲取校驗的唯一uuid
String jsonStr = "";
try
{
if (StringUtils.isEmpty (uuId))
{
resultMap.put ("message", "傳入引數為空,授權失敗");
resultMap.put ("flagCode", "false");
jsonStr = JSONObject.fromObject (resultMap).toString ();
ResponseWriteUtil.writeJson (jsonStr, response);
return null;
}
// 通過uuid查詢使用者認證資訊
PrivacyInfoRedis privacyInfo = privacyInfoRedisService.queryPrivacy (uuId);
if (null != privacyInfo)
{
// 校驗隱私認證資訊是否過期
boolean validateFlag = privacyInfoRedisService.isValidPrivacy (uuId);
if (validateFlag)
{
// 校驗使用者session中
UserDto userDto = (UserDto) request.getSession ().getAttribute (LoginConstants.LOGIN_USER);//
if (null == userDto)
{
resultMap.put ("message", "認證資訊校驗失敗,授權失敗");
resultMap.put ("flagCode", "false");
}
else
{
// 獲取phm使用者的登陸資訊
// 比較使用者認證資訊及登陸資訊是否一致
String idCard = userDto.getPortalUserInfo ().getIdentification ();
if (idCard.equals (privacyInfo.getIdCard ()))
{
// 認證成功
privacyInfo.setValidateFlag (true);
privacyInfoRedisService.addPrivacy (uuId, privacyInfo);// 將認證資訊的狀態改為ture
String phpPrvacyUrl = PropertiesUtils.getPropertiesFromPlatform ("php", "php.pushlet.url");
// 設定請求引數
String senUrl = phpPrvacyUrl + "/privacy/pushletPrivacy.do";
Map <String, Object> postMap = new HashMap <String, Object> ();
postMap.put ("uuId", uuId);
// 設定HttpPost請求
CloseableHttpClient httpClient = HttpClients.createDefault ();
HttpPost httpPostMethod = new HttpPost (senUrl);
// 解決中文亂碼問題
String paramStr = JSONObject.fromObject (postMap).toString ();
StringEntity entity = new StringEntity (paramStr, "utf-8");
entity.setContentEncoding ("UTF-8");
httpPostMethod.setEntity (entity);
HttpResponse httpResponse = httpClient.execute (httpPostMethod);
// 請求傳送成功,並得到響應
if (httpResponse.getStatusLine ().getStatusCode () == 200)
{
HttpEntity enrity = httpResponse.getEntity ();//獲取請求結果
String result=EntityUtils.toString (enrity);resultMap.put ("message", "授權成功");
resultMap.put ("flagCode", "true");
}
else
{
_logger.error ("授權失敗:url請求失敗:" + httpResponse.getStatusLine ());
resultMap.put ("message", "授權失敗");
resultMap.put ("flagCode", "false");
}
resultMap.put ("message", "授權成功");
resultMap.put ("pushletUrl", phpPrvacyUrl);
resultMap.put ("flagCode", "true");
}
else
{
privacyInfoRedisService.deletePrivacy (uuId);
resultMap.put ("message", "認證資訊校驗失敗,授權失敗");
resultMap.put ("flagCode", "false");
}
}
}
else
{
privacyInfoRedisService.deletePrivacy (uuId);
resultMap.put ("message", "認證資訊過期,授權失敗");
resultMap.put ("flagCode", "false");
}
}
else
{
resultMap.put ("message", "未查詢到認證資訊,授權失敗");
resultMap.put ("flagCode", "false");
}
}
catch (Exception e)
{
resultMap.put ("message", "授權失敗");
resultMap.put ("flagCode", "false");
_logger.error ("授權失敗" + e.getMessage ());
}
jsonStr = JSONObject.fromObject (resultMap).toString ();
ResponseWriteUtil.writeJson (jsonStr, response);
return null;
}
//接受端
@RequestMapping (value = "/pushletPrivacy", method = RequestMethod.POST)
@ResponseBody
public String pushletPrivacy (@RequestBody String requestBody, HttpServletResponse response,
HttpServletRequest request)
{
String uuId = "";// 查詢使用者隱私授權資訊唯一標識
try
{
JSONObject jsonObject = JSONObject.fromObject (requestBody);
uuId = jsonObject.getString ("uuId");
request.setCharacterEncoding ("utf-8");
response.setCharacterEncoding ("utf-8");
Event event = Event.createDataEvent ("/validate/privacy");
if (StringUtils.isNotBlank (uuId))
{
PrivacyInfoRedis privacyInfo = privacyInfoRedisService.queryPrivacy (uuId);// 查詢redis快取
if (null != privacyInfo && privacyInfo.isValidateFlag ())
{
event.setField ("validateFlag", "true");
if (StringUtils.isNotBlank (uuId))
{
event.setField ("uuId", uuId);
}
if (StringUtils.isNotBlank (privacyInfo.getUserName ()))
{
String userName = new String (privacyInfo.getUserName ().getBytes ("UTF-8"), "ISO-8859-1");
event.setField ("userName", userName);
}
if (StringUtils.isNotBlank (privacyInfo.getIdCard ()))
{
event.setField ("idCard", privacyInfo.getIdCard ());
}
}
else
{
event.setField ("validateFlag", "false");
}
}
else
{
event.setField ("validateFlag", "false");
}
// 將reids快取的認證資料進行刪除
privacyInfoRedisService.deletePrivacy (uuId);
String path = request.getSession ().getServletContext ().getRealPath ("");
if (StringUtils.isNotBlank (uuId))
{
File f = new File (path + File.separator + "images" + File.separator + uuId + ".jpg");
if (f.exists ())
{
f.delete ();
}
}
// 將訊息推送到web客戶端
Dispatcher.getInstance ().multicast (event);
}
catch (Exception e)
{
_logger.error ("查詢認證資訊服務失敗:" + e.getMessage ());
}
return null;
}
相關推薦
java傳送http請求例項
//請求端 @RequestMapping ("/confirmPrivacyInfo") @ResponseBody public String confirmPrivacyInfo (HttpServletResponse response, HttpS
JAVA傳送HTTP請求(post、get),讀取HTTP響應內容,例項及應用
JDK中提供了一些對無狀態協議請求(HTTP)的支援,下面我就將我所寫的一個小例子(元件)進行描述: 首先讓我們先構建一個請求類(HttpRequester)。 該類封裝了JAVA實現簡單請求的程式碼,如下: import java.io.BufferedReader;
Java 傳送http請求
傳送GET方法的請求 /** * 向指定URL傳送GET方法的請求 * @param url 傳送請求的URL * @param param 請求引數,格式:name1=value1&name2=value2
Java傳送http請求(HttpClient)
public class HttpClientUtil { public static String doGet(String url, Map<String, String> param, String token) { // 建立Httpclient物件 Closeabl
Java 傳送http請求demo
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.U
java 傳送http請求獲得json 以及解析json
博主在做一款圖書app的後臺,最近遇到的一個需求: 前端向後端返回圖書的isbn碼,後端向前端返回該isbn對應圖書的資訊,例如書名、作者、出版社、簡介等。 後端實現的邏輯: 讀取isbn碼,判斷是否為空,為空則報錯 檢視資料庫是否有與該isbn匹配的圖
Java傳送Http請求,解析html返回
宣告:本文系JavaEye網站釋出的原創部落格文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任! 今天是2008年7月7日星期一,下午一直在學校做個人開始頁面。因為離不開google的翻譯,所以想把google的翻譯整合到我的開始頁面中來,於是乎就遇到了一個
java 傳送http請求 返回字串 再進行解析(略)
package taobao.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.InputStreamR
幾種方式的java傳送http請求的程式碼彙總
<span style="font-family: Arial, Helvetica, sans-serif;">import java.io.BufferedReader;</span> import j
Java傳送Http請求工具類
package com.core.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Print
java傳送http請求的四種方式
自己對知識的總結 4種分別可傳送get和post請求的方法, 第1種:HttpURLConnection、 第2種:URLConnection、 第3種:HttpClient,,HttpClient常
JAVA傳送http請求,呼叫http介面與方法
1.傳送POST請求,無引數名呼叫。 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import
Java 傳送http請求,上傳檔案
package wxapi.WxHelper; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.F
java 傳送http請求以及請求引數值出現亂碼
一、傳送Http POST請求 public static String sendPost(String apiurl){ String inputline = ""; // 建立url物件
java傳送http請求
package fun.lovey.http; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; import java.util
JAVA傳送HTTP請求,並接受返回內容
JDK 中提供了一些對無狀態協議請求(HTTP )的支援,下面我就將我所寫的一個小例子(元件)進行描述: 首先讓我們先構建一個請求類(HttpRequester )。 該類封裝了 JAVA 實現簡單請求的程式碼,如下:package atco.http; import java.io.BufferedR
使用java傳送HTTP請求
近來在寫專案時呼叫第三方介面,發現使用第三方介面基本都要使用java程式來發送HTTP請求到第三方的伺服器去獲取資料,不同的第三方提供的方法不盡相同,有使用org.apache.commons.httpclient的,有使用org.apache.http.client的,有
JAVA傳送HTTP請求方式總結
java 傳送HTTP請求方式總結 1. HttpURLConnection 使用JDK原生提供的net,無需其他jar包; HttpURLConnection是URLConnection的子類,提供更多的方法,使用更方便。 packa
java傳送http請求獲取手機驗證碼
Maven <!--http --> <dependency> <groupId>org.apache.httpcomponents</groupId>
java傳送http請求獲取響應結果【工具包系列】
import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.NameValuePair; import org.apache.log4j.Logger;