遠程調用get和post請求 將返回結果轉換成實體類


package org.springblade.desk.utils;

import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springblade.core.tool.utils.Func;

/**
 * create by Dell on 2020/6/17
 */
public class HttpUtil {
    //get請求
    public static String doGet(String url,String authValue){
        String result = null;
        CloseableHttpClient httpClient = HttpClients.createDefault();
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        try {
            HttpGet httpGet = new HttpGet(url);
            httpGet.setHeader("Content-type", "application/json");
            if(!Func.isEmpty(authValue)){
                httpGet.setHeader("Authorization","Bearer "+authValue);
            }
            result = httpClient.execute(httpGet, responseHandler);
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            try {
                httpClient.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
        return result ;
    }

    // post請求參數為json格式
    public static String doJsonPost(String url, String json,String authValue) {
        String result = null;
        CloseableHttpClient httpClient = HttpClients.createDefault();
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        try {
            HttpPost httpPost = new HttpPost(url);
            StringEntity requestEntity = new StringEntity(json, "utf-8");
            requestEntity.setContentEncoding("UTF-8");
            httpPost.setHeader("Content-type", "application/json");
            if(!Func.isEmpty(authValue)){
                httpPost.setHeader("Authorization","Bearer "+authValue);
            }
            httpPost.setEntity(requestEntity);
            result = httpClient.execute(httpPost, responseHandler);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                httpClient.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
        return result;
    }
}

 

public class PartnerController extends BladeController implements CacheNames {

    /**
     * 初始化
     *
     */
    @GetMapping("/init")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "初始化", notes = "傳入參數")
    public R<PartnerInitData> init(String company, String cardType) {
        String url=String.format(SapConstant.PARTNER_INIT +"?Company={0}&CardType={1}",company,cardType);
        String res = HttpUtil.doGet(url,null);
        PartnerInitResult result = JSONObject.parseObject(res, PartnerInitResult.class);
        return R.data(result.getData());
    }

    /**
     * 詳情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "詳情", notes = "傳入參數")
    public R<PartnerDetailData> detail(String company, String cardCode) {
        String url = SapConstant.PARTNER_DETAIL +"?Company="+company+"&CardCode="+cardCode;
        String res = HttpUtil.doGet(url,SapUtil.getReadToken());
        PartnerDetailResult result = JSONObject.parseObject(res, PartnerDetailResult.class);
        return R.data(result.getData());
    }

    /**
     * 查詢
     */
    @GetMapping("/query")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "查詢", notes = "傳入參數")
    public R<List<HashMap<String,String>>> query(String company, String cardType, String partner) {
        String url = SapConstant.PARTNER_QUERY +"?Company="+company+"&CardType="+cardType+"&Partner="+partner;
        String res = HttpUtil.doGet(url,SapUtil.getReadToken());
        PartnerQueryResult result = JSONObject.parseObject(res, PartnerQueryResult.class);
        return R.data(result.getData());
    }

    /**
     * 特殊價格詳情
     */
    @GetMapping("/specprices/detail")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "特殊價格詳情", notes = "傳入參數")
    public R<List<HashMap<String,Object>>> specPricesDetail(String company, String cardCode) {
        String url = SapConstant.PARTNER_SPECPRICES_DETAIL +"?Company="+company+"&CardCode="+cardCode;
        String res = HttpUtil.doGet(url,SapUtil.getReadToken());
        SpecPricesDetailResult result = JSONObject.parseObject(res, SpecPricesDetailResult.class);
        return R.data(result.getData());
    }

    /**
     * 特殊價格查詢
     */
    @GetMapping("/specprices/query")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "特殊價格查詢", notes = "傳入參數")
    public R<List<HashMap<String,Object>>> specPricesQuery(String company, String cardCode, String itemCode) {
        String url = SapConstant.PARTNER_SPECPRICES_QUERY +"?Company="+company+"&CardCode="+cardCode+"&ItemCode="+itemCode;
        String res = HttpUtil.doGet(url,SapUtil.getReadToken());
        SpecPricesQueryResult result = JSONObject.parseObject(res, SpecPricesQueryResult.class);
        return R.data(result.getData());
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM