在开发中,与第三方接口进行对接时,阅读对方的接口文档,获取重要的信息:如请求方式,必传参数,应用id,版本号,秘钥等。(一般是http post请求方式),然后一般是以下步骤进行:
1.参数的传递:一般情况,使用map设置需要传输的参数,如需传输参数姓名name;
Map<String,Object> map=new HashMap<String, Object>();
map.put("name","张三");
2.根据对方所要求的参数格式进行加密,封装,转化等;
3.开始发送请求步骤:
①创建HttpClient对象:HttpClient client=new HttpClient();
②创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象;下面为post方式:
String url="xxx";
HttpPost method = new HttpPost(url);
③设置调用的参数,可使用HttpGet、HttpPost共同的setParams(HttpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数,此时如果是使用1和2步骤中的运用map的设置参数的,需要进行类型转换,method.setEntity(xxx);
转换的例子:需要使用 List<NameValuePair>,paramsMap为封装为map的参数
List<NameValuePair> paramList = new ArrayList<NameValuePair>();
for (Entry<String, String> param : paramsMap.entrySet()) {
paramList.add(new BasicNameValuePair(param.getKey(), param.getValue().trim()));
}method.setEntity(new UrlEncodedFormEntity(paramList, CharsetNames.UTF_8));
④调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse对象respon
如:client.execute(method)
⑤调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。
一般使用的是HttpEntity entity = response.getEntity();然后需要将HttpEntity对象转换为String ,使用EntityUtils.toString(entity ,CharsetNames.UTF_8);
⑥释放连接,无论执行方法是否成功,都必须释放连接,respon对象。
注:此文章是本人学习的一点小笔记和总结,若发现有问题欢迎指出,谢谢~