//阿里云天气API
String host = "http://jisutqybmf.market.alicloudapi.com";
String path = "/weather/query";
String method = "GET";
String appcode = "efef9016ff904a92baaae4be65a81***";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + appcode);
Map<String, String> querys = new HashMap<String, String>();
querys.put("city", weatherResponseVo.getCityName());
try {HttpResponse response = WeatherForexUtils.doGet(host, path, method, headers, querys);/*** 处理天气图片的逻辑,因为当时接口查询出的数据img是0,1状态,需要替换成网址传给客户端*/// 1 weather查询出来的结果 转换成字符串String weather = EntityUtils.toString(response.getEntity());// 2 将weather中所有的 :替换成@String weatherReplace = weather.replace("\":\"", "@");// 3 查询出自己定义的json字符串String weatherIcon = getMessage(HIMI_SERVICE);// 4 将字符串转换为json数组  然后遍历 替换目标str中的img@1  成自己需要的newStrJSONArray json = JSONArray.parseArray(weatherIcon);if(json.size()>0) {for (int i = json.size()-1; i >=0; i--) {JSONObject job = json.getJSONObject(i);if(weatherReplace.indexOf(job.get("imgId").toString())!=-1){weatherReplace = weatherReplace.replace(job.get("imgId").toString(),job.get("imgPath").toString());}}}// 5 将newStr中的 @ 替换为 :  后setString string=weatherReplace.replace("@", "\":\"");System.out.println(string);} catch (Exception e) {e.printStackTrace();
}//阿里云汇率API//参数一 输入币种
String moneyFrom = String.valueOf(parametersMap.get("money_from"));
//参数二 输入的钱数
String moneyNumber = String.valueOf(parametersMap.get("number"));
//参数三 输出币种
String moneyInto = String.valueOf(parametersMap.get("money_into"));
String host1 = "https://ali-waihui.showapi.com";
String path1 = "/waihui-transform";
String pathList =  "/list";
String method1 = "GET";
String appcode1 = "efef9016ff904a92baaae4be65a81***";
Map<String, String> headers1 = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers1.put("Authorization", "APPCODE " + appcode1);
Map<String, String> queryList = new HashMap<String, String>();
try {Map<String, String> querys1 = new HashMap<String, String>();querys1.put("fromCode", CURRENCY_MAP.get(paramVo.getMoneyFrom()));//querys1.put("money", moneyNumber);querys1.put("money", moneyNumber);querys1.put("toCode", CURRENCY_MAP.get(paramVo.getMoneyInto()));HttpResponse response = WeatherForexUtils.doGet(host1, path1, method1, headers1, querys1);System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {e.printStackTrace();
}//接口工具类package com.hnair.consumer.utils;import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;public class WeatherForexUtils {/*** get** @param host* @param path* @param method* @param headers* @param querys* @return* @throws Exception*/public static HttpResponse doGet(String host, String path, String method,Map<String, String> headers,Map<String, String> querys)throws Exception {HttpClient httpClient = wrapClient(host);HttpGet request = new HttpGet(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}return httpClient.execute(request);}/*** post form** @param host* @param path* @param method* @param headers* @param querys* @param bodys* @return* @throws Exception*/public static HttpResponse doPost(String host, String path, String method,Map<String, String> headers,Map<String, String> querys,Map<String, String> bodys)throws Exception {HttpClient httpClient = wrapClient(host);HttpPost request = new HttpPost(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (bodys != null) {List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();for (String key : bodys.keySet()) {nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key)));}UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8");formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8");request.setEntity(formEntity);}return httpClient.execute(request);}/*** Post String** @param host* @param path* @param method* @param headers* @param querys* @param body* @return* @throws Exception*/public static HttpResponse doPost(String host, String path, String method,Map<String, String> headers,Map<String, String> querys,String body)throws Exception {HttpClient httpClient = wrapClient(host);HttpPost request = new HttpPost(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (StringUtils.isNotBlank(body)) {request.setEntity(new StringEntity(body, "utf-8"));}return httpClient.execute(request);}/*** Post stream** @param host* @param path* @param method* @param headers* @param querys* @param body* @return* @throws Exception*/public static HttpResponse doPost(String host, String path, String method,Map<String, String> headers,Map<String, String> querys,byte[] body)throws Exception {HttpClient httpClient = wrapClient(host);HttpPost request = new HttpPost(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (body != null) {request.setEntity(new ByteArrayEntity(body));}return httpClient.execute(request);}/*** Put String* @param host* @param path* @param method* @param headers* @param querys* @param body* @return* @throws Exception*/public static HttpResponse doPut(String host, String path, String method,Map<String, String> headers,Map<String, String> querys,String body)throws Exception {HttpClient httpClient = wrapClient(host);HttpPut request = new HttpPut(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (StringUtils.isNotBlank(body)) {request.setEntity(new StringEntity(body, "utf-8"));}return httpClient.execute(request);}/*** Put stream* @param host* @param path* @param method* @param headers* @param querys* @param body* @return* @throws Exception*/public static HttpResponse doPut(String host, String path, String method,Map<String, String> headers,Map<String, String> querys,byte[] body)throws Exception {HttpClient httpClient = wrapClient(host);HttpPut request = new HttpPut(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (body != null) {request.setEntity(new ByteArrayEntity(body));}return httpClient.execute(request);}/*** Delete** @param host* @param path* @param method* @param headers* @param querys* @return* @throws Exception*/public static HttpResponse doDelete(String host, String path, String method,Map<String, String> headers,Map<String, String> querys)throws Exception {HttpClient httpClient = wrapClient(host);HttpDelete request = new HttpDelete(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}return httpClient.execute(request);}private static String buildUrl(String host, String path, Map<String, String> querys) throws UnsupportedEncodingException {StringBuilder sbUrl = new StringBuilder();sbUrl.append(host);if (!StringUtils.isBlank(path)) {sbUrl.append(path);}if (null != querys) {StringBuilder sbQuery = new StringBuilder();for (Map.Entry<String, String> query : querys.entrySet()) {if (0 < sbQuery.length()) {sbQuery.append("&");}if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {sbQuery.append(query.getValue());}if (!StringUtils.isBlank(query.getKey())) {sbQuery.append(query.getKey());if (!StringUtils.isBlank(query.getValue())) {sbQuery.append("=");sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));}}}if (0 < sbQuery.length()) {sbUrl.append("?").append(sbQuery);}}return sbUrl.toString();}private static HttpClient wrapClient(String host) {HttpClient httpClient = new DefaultHttpClient();if (host.startsWith("https://")) {sslClient(httpClient);}return httpClient;}private static void sslClient(HttpClient httpClient) {try {SSLContext ctx = SSLContext.getInstance("TLS");X509TrustManager tm = new X509TrustManager() {public X509Certificate[] getAcceptedIssuers() {return null;}public void checkClientTrusted(X509Certificate[] xcs, String str) {}public void checkServerTrusted(X509Certificate[] xcs, String str) {}};ctx.init(null, new TrustManager[] { tm }, null);SSLSocketFactory ssf = new SSLSocketFactory(ctx);ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);ClientConnectionManager ccm = httpClient.getConnectionManager();SchemeRegistry registry = ccm.getSchemeRegistry();registry.register(new Scheme("https", 443, ssf));} catch (KeyManagementException ex) {throw new RuntimeException(ex);} catch (NoSuchAlgorithmException ex) {throw new RuntimeException(ex);}}
}

阿里云天气汇率API代码片段相关推荐

  1. 阿里云视觉智能API,核心技术一站共享!

    随着人工智能的技术不断成熟,AI技术已应用到了社会的各行各业,尤其是计算机视觉技术应用更为广泛,计算机视觉(Computer Vision)是一门研究如何使机器"看"的科学,计算机 ...

  2. 阿里云语音通知API试接入

    阿里云语音通知API试接入 文档地址 1.安装SDK composer require alibabacloud/dyvmsapi-20170525 2.准备工作 在"语音号码"页 ...

  3. JAVA中调用阿里云语音通知Api并接收消息回执

    JAVA中调用阿里云语音通知Api并接收消息回执 配置文件 需要的包 <dependency><groupId>com.aliyun</groupId><ar ...

  4. 【24-业务开发-基础业务-品牌管理-图片管理-阿里云OSS服务开通和使用-阿里云OSS服务API使用-SpringCloudAlibaba OSS服务的使用】

    一.知识回顾 [0.三高商城系统的专题专栏都帮你整理好了,请点击这里!] [1-系统架构演进过程] [2-微服务系统架构需求] [3-高性能.高并发.高可用的三高商城系统项目介绍] [4-Linux云 ...

  5. 如何将阿里云天气接口中返回的天气图标转换成对应的url

    上一篇文章中我们谈到了阿里云天气接口的使用,但是,在这个接口返回的数据中,有一个图标问题是需要我们注意的. 如图所示: 阿里云接口返回的天气图标是一个状态值,拿到之后是没法直接使用的,所以,我们需要将 ...

  6. 调用阿里云短信API发送短信通知

    调用阿里云短信API发送短信通知 昨天领导让我弄一个短信通知功能,原来也没有搞过,刚接过来的时候亚历山大,感觉很难搞.但是看过官方文档之后还是挺简单的.来让我们看一下这个短信接口怎么搞吧. 首先你需要 ...

  7. 使用java调用阿里云车牌识别API

    实现车牌识别功能我采用调用阿里云车牌识别API的方法,我使用的是eclipse,jdk 1.8,Tomcat 9.0 1.进入阿里云主页先创建阿里云账号 2.在控制台的头像那里找到AccessKey管 ...

  8. 阿里云添加DNS API 的accesskey

    阿里云添加DNS API 的accesskey 进入阿里云,在左侧栏搜索 "访问控制",然后来到访问控制界面,如果没有开通,直接开通就OK, 然后在进入用户管理->新建用户( ...

  9. 阿里云数据及api服务

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/54692577 本文出自[我是干勾鱼的博客] 之前给大家介绍的阿里云的ip地址查询 ...

  10. 阿里云Code SSH KEY 代码入库

    阿里云Code SSH KEY 代码入库 1. 前言 2. 关于阿里云Code界面是英文的说明 3. 阿里云Code基础知识指南 3.1 开始在命令行中使用Git 3.1.1 检查Git 是否安装 3 ...

最新文章

  1. 044_CSS33D转换
  2. UA MATH566 统计理论 概念与定理总结
  3. spring security源码分析心得
  4. C语言十六进制转换为八进制(附完整源码)
  5. git add . 出现错误 The file will have its original line endings in your working directory. 解决方案...
  6. Linux C++线程池
  7. Application Wizard生成的项目文件简介
  8. 物联网工程专业考研方向
  9. mysql ok_mysql一直提示query ok 0 row affected
  10. freemarker 解析对象的某元素_FreeMarker标签介绍及各种数据类型处理
  11. android-17手机,安卓手机好评排行:魅族17第四,小米10至尊第六,第一名意料之中...
  12. CSS的类名命名规范
  13. 如何做好数字化运营,打造战略落地的最佳武器?他们这么说|2021全球数字价值峰会...
  14. ceph mon 无法启动,报错:ceph-12.2.11/src/mon/AuthMonitor.cc: 157: FAILED assert(ret == 0)
  15. web开发常见问题和解决方法
  16. 【踩坑专栏】Field xxFeignClient in xxx required a bean of type ‘xxx.XXFeignClient‘ that could not be found
  17. 最冷招聘季:裁员后,我求职沟通1398次,投277份简历,面试72场
  18. Qt完整工程创建和项目文件概述
  19. webshell客户端流量特征
  20. 数学建模学习(60):matlab回归分析及残差图绘制

热门文章

  1. Ubuntu中将otf字体转换为ttf字体
  2. Sql server 2008 Express 下载
  3. 斯皮尔曼相关系数范围_Spearman Rank(斯皮尔曼等级)相关系数
  4. Spring常用注解含义
  5. 使用OTDR进行双向光纤测试
  6. synchronize偏向锁底层实现原理
  7. wsdl文件 服务器地址,webservice 的wsdl文件详解
  8. 用html制作学生个人博客,网页制作论坛(学生个人网页制作代码)
  9. python实现团队游戏小程序——你画我猜
  10. Windows10 电脑蓝屏方案对照表