spring+httpClient调用别人服务
2012-02-24 16:20
706 查看
首先,在spring的配置需要调用的url,例如:
在Manger调用的时候set注入进来
executeHttpRequestByGetType方法:
convertData方法:
<bean id="adManager" class="com.jd.hotel.manager.index.impl.AdManagerImpl"> <property name="adUrl" value="${hotel.ad.url}"/> </bean>
在Manger调用的时候set注入进来
private List<GroupProduct> getData() throws Exception{ Map<String, String> paraMap = new HashMap<String, String>(); paraMap.put("action", "max_team_five_city_hotel_team_info"); String result = httpClientUtilManager.executeHttpRequestByGetType(groupProductUrl, paraMap); List<GroupProduct> groupProducts = convertData(result); return groupProducts; }
executeHttpRequestByGetType方法:
/** * get方式提交 * * @param url * @param keyValueMap * @return */ public String executeHttpRequestByGetType(String url, Map<String, String> keyValueMap) { HttpClient client = new HttpClient(); StringBuffer sb = new StringBuffer(url); PostMethod postMethod = null; try { //设置请求参数 if (keyValueMap != null) { Iterator it = keyValueMap.entrySet().iterator(); if (keyValueMap.size() > 0) { sb.append("?"); while (it.hasNext()) { Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next(); sb.append(entry.getKey() + "=" + entry.getValue() + "&"); } sb.deleteCharAt(sb.length()-1); } } postMethod = new PostMethod(sb.toString()); log.debug("query uri ===============" + postMethod.getURI()); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "gbk"); //todo:设置超时时间 postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 200000); int statusCode = client.executeMethod(postMethod); if (statusCode != HttpStatus.SC_OK) { log.info("request '" + url + "' failed,the status is not 200,status:" + statusCode); return ""; } String responseBody = postMethod.getResponseBodyAsString(); return responseBody; } catch (Exception e) { log.error("发生异常!请检查网络和参数", e); } finally { if(postMethod!=null){ postMethod.releaseConnection(); } } return null; } }
convertData方法:
private List<GroupProduct> convertData(String result) throws Exception{ List<GroupProduct> groupProducts = new ArrayList<GroupProduct>(); if(result==null || "".equals(result)){ return groupProducts; } try { ArrayList<HashMap> hashMaps = (ArrayList<HashMap>) JSONUtil.deserialize(result); for (HashMap map : hashMaps) { GroupProduct groupProduct = new GroupProduct(); groupProduct.setCityName(map.get("hotel_city").toString()); groupProduct.setDesc(map.get("title").toString()); groupProduct.setOldPrice(map.get("market_price").toString()); groupProduct.setPrice(map.get("team_price").toString()); groupProduct.setImgUrl(map.get("image").toString()); groupProduct.setProductUrl("team-" + map.get("id").toString() + ".html"); groupProduct.setDisCount(countDis(Double.parseDouble(map.get("team_price").toString()), Double.parseDouble(map.get("market_price").toString()))); groupProducts.add(groupProduct); } } catch (Exception e) { log.error("GroupProductManagerImpl convertData error" + e); } return groupProducts; }
相关文章推荐
- httpclient调用struts服务
- springMVC、httpClient调用别人提供的接口!!!(外加定时调用)
- springMVC、httpClient调用别人提供的接口。
- [原]需要的是提供给别人服务调用,而非每次都要写函数实现
- 服务间调用方法:HttpClient
- 使用HttpClient调用RESTful Web服务
- 远程服务调用之RMI、Hessian、Burlap、Spring的HTTPinvoker
- Web服务入门之三:通过XFire调用远程Web Service,实现QQ在线服务功能
- Httpclient远程调用WebService示例(Eclipse+httpclient)
- cesium调用天地图服务
- jacob调用Microsoft Office服务:VariantChangeType failed
- 使用cxf框架搭建基于Spring远程调用Web服务
- hadoop集群安装与配置--sqoop服务调用
- 【WebService】自定义WebService服务及其调用
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - SOA面向安全的服务调用接口
- 在后台根据单据标识构建单据的DynamicObject,然后调用BOS的保存服务保存单据。
- Apache HttpClient调用Spring3 MVC Restful Web API演示
- 微服务年度总结,看完这个你应该知道如何回答别人的问题了。
- motan源码分析四:客户端调用服务
- spring boot http调用其他服务并解析