1. 程式人生 > >java傳送http請求例項

java傳送http請求例項

//請求端

@RequestMapping ("/confirmPrivacyInfo")

    @ResponseBody
    public 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;