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);
}
}