HttpClient调用其他接口

package com.soc.cloud.mobileApplications.httpClient;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestBody;

import com.soc.cloud.base.BaseResult;
import com.soc.cloud.util.JsonObjUtils;

import net.sf.json.JSONObject;

public class MobileApplicationHttpClient {
	private final Logger logger = LoggerFactory.getLogger(AcceptService.class);
	/**
     * 带参数的post请求
     * 
     * @param url
     * @param map
     * @return
     * @throws Exception
     */
	@Value("${tongfudun.url}")
	private String tongfudun_url;
	
	public BaseResult doPost(@RequestBody  Map<String, Object> jsonStr) throws Exception{
        logger.info("进入通富顿 接口-----begin:[传入参数]=" + jsonStr);
		System.out.println(jsonStr);
		//申请进入接口地址
        String urlPath = tongfudun_url;
//        		new String("http://58.211.152.245:28080/appfortify/detection");
        String appId = JsonObjUtils.map2obj(jsonStr,"appId", String.class);
        String appFilePath = JsonObjUtils.map2obj(jsonStr,"appFilePath", String.class);
        List<Object> paramList = new ArrayList<>();
        Map<String, Object> fileAddrsMap = new HashMap<>();
        Map<String, Object> map = new HashMap<>();
        fileAddrsMap.put("appId",appId);
        fileAddrsMap.put("uploadUrl",appFilePath);
        List<Object> fileAddrsList = new ArrayList<>();
        fileAddrsList.add(fileAddrsMap);
        map.put("fileAddrs", fileAddrsList);
        map.put("callbackUrl",new String("https://localhost:8080/getMobileApplicationsResult/callbackUrl"));
        paramList.add(fileAddrsMap);
        paramList.add(map);
        JSONObject param = JSONObject.fromObject(paramList.get(1));
        //建立连接
        URL url=new URL(urlPath);
        HttpURLConnection httpConn=(HttpURLConnection)url.openConnection();
        //设置参数
        httpConn.setDoOutput(true);   //需要输出
        httpConn.setDoInput(true);   //需要输入
        httpConn.setUseCaches(false);  //不允许缓存
        httpConn.setRequestMethod("POST");   //设置POST方式连接
        //设置请求属性
        httpConn.setRequestProperty("Content-Type", "application/json");
        httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
        httpConn.setRequestProperty("Charset", "UTF-8");
        //连接,也可以不用明文connect,使用下面的httpConn.getOutputStream()会自动connect
        httpConn.connect();
        //建立输入流,向指向的URL传入参数
        DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream());
        dos.writeBytes(JsonObjUtils.obj2json(param));
        dos.flush();
        dos.close();
        //获得响应状态
        int resultCode=httpConn.getResponseCode();
        if(HttpURLConnection.HTTP_OK==resultCode){
            StringBuffer sb=new StringBuffer();
            String readLine;
            BufferedReader responseReader=new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"UTF-8"));
            while((readLine=responseReader.readLine())!=null){
                sb.append(readLine).append("\n");
            }
            responseReader.close();
            System.out.println(sb.toString());
        }
        logger.info("进入通富顿 接口-----end");
        return new BaseResult("0","成功",null);
    }
}

  

posted @ 2022-02-15 16:01  梦幻&浮云%  阅读(54)  评论(0编辑  收藏  举报