欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java对接腾讯云短信和阿里云天气预报

程序员文章站 2022-06-23 11:16:21
API接口提供商这里推荐阿里云,比起其他的杂牌方便很多遇到的问题Eclipse 创建Maven项目Select an Archetype为空解决方法...

API接口提供商

短信

这里推荐阿里云,比起其他的杂牌方便很多

因为现在审核环境的问题,个人开发者比较难申请到签名和模板

我们需要创建一个微信公众号来作为应用场景
在微信官方的公众号平台上面创建
Java对接腾讯云短信和阿里云天气预报
公众号的步骤这里就省略了

Java对接腾讯云短信和阿里云天气预报
这就是刚刚创建好的微信公众号
在阿里云控制台—短信服务
Java对接腾讯云短信和阿里云天气预报
Java对接腾讯云短信和阿里云天气预报
在国内消息里面申请签名和模板
Java对接腾讯云短信和阿里云天气预报
但是在这里签名申请遇到了问题
我的签名申请连续两天被打回不通过
Java对接腾讯云短信和阿里云天气预报
阿里云不支持个人公众号
Java对接腾讯云短信和阿里云天气预报

于是转战腾讯云
Java对接腾讯云短信和阿里云天气预报
一样控制台进去,短信,申请签名和模板
目前的腾讯云的签名申请对我这种学生或者个人开发者更加友好
Java对接腾讯云短信和阿里云天气预报
成功
Java对接腾讯云短信和阿里云天气预报
腾讯云的短信API接口的使用参考
java对接腾讯云短信,通过api发送短信
发送短信

天气预报

这里选择阿里云就好了
在云市场里面,购买一个免费的天气预报接口
Java对接腾讯云短信和阿里云天气预报

java实现

短信

腾讯云的代码很简单
你需要知道的几个参数
1.模板ID
Java对接腾讯云短信和阿里云天气预报
2.签名名字
Java对接腾讯云短信和阿里云天气预报
3.手机号码
国内手机号码要+86
4.个人密钥
secretid和secretKey在腾讯云-API密钥管理中创建,secretid和secretKey具有非常高的访问权限,不能随意泄露给别人

之后就可以使用腾讯的在线调试平台调试了
调试

代码:

 try{

             Credential cred = new Credential("你的SecretId", "你的SecretKey");//个人密钥里面获取

             HttpProfile httpProfile = new HttpProfile();
             httpProfile.setEndpoint("sms.ap-chongqing.tencentcloudapi.com");

             ClientProfile clientProfile = new ClientProfile();
             clientProfile.setHttpProfile(httpProfile);

             SmsClient client = new SmsClient(cred, "", clientProfile);

             SendSmsRequest req = new SendSmsRequest();
             String[] phoneNumberSet1 = {"+86182xxxx846"};    //发送的手机,不要忘记国内+86
             req.setPhoneNumberSet(phoneNumberSet1);

             req.setTemplateID("829417");    //你的模板ID
             req.setSmsSdkAppid("1400467412");   //你的应用ID
             req.setSign("饿丸船业");      		//你的签名名字

             SendSmsResponse resp = client.SendSms(req);

             System.out.println(SendSmsResponse.toJsonString(resp));
         } catch (TencentCloudSDKException e) {
                 System.out.println(e.toString());
         }

     }

依赖:

<repository>
  <id>nexus-tencentyun</id>
  <name>Nexus tencentyun</name>
  <url>https://mirrors.tencent.com/nexus/repository/maven-public/</url>
</repository>

     <dependency>
            <groupId>com.github.qcloudsms</groupId>
            <artifactId>qcloudsms</artifactId>
            <version>1.0.6</version>
        </dependency>

		<dependency>
			<groupId>com.tencentcloudapi</groupId>
			<artifactId>tencentcloud-sdk-java</artifactId>
			<!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java and get the latest version. -->
			<!-- 请到 https://search.maven.org/search?q=tencentcloud-sdk-java 查询最新版本 -->
			<version>3.1.87</version>
		</dependency>

效果:

Java对接腾讯云短信和阿里云天气预报

天气预报

代码

package demo.ein;

import java.util.HashMap;
import java.util.Map;

import org.apache.http.util.EntityUtils;

import com.aliyuncs.http.HttpResponse;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
    	 String host = "https://jisutqybmf.market.alicloudapi.com";
 	    String path = "/weather/query";
 	    String method = "ANY";
 	    //GET/POST 任意
	    String appcode = "你购买的Appcode";
	    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", "重庆");
	    querys.put("citycode", "citycode");
	    querys.put("cityid", "cityid");
	    querys.put("ip", "ip");
	    querys.put("location", "location");


 	    try {

 	    	org.apache.http.HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
 	    	System.out.println(response.toString());
 	    	//获取response的body
 	    	String str=EntityUtils.toString(((org.apache.http.HttpResponse) response).getEntity(),"utf-8"); 
 	    	 String[] strarray=str.split(","); //遇到逗号就分割
 	    	 for (int i = 0; i < strarray.length; i++) 
 	    	 {
 	    		System.out.println(strarray[i]); 
 	    		if(strarray[i]=="{"||strarray[i]=="}")
 	    		{
 	    			System.out.println("\n"); //遇到{}就换行
 	    		}
 	    	 }

 	    } catch (Exception e) {
 	    	e.printStackTrace();
 	    }
    }
}

相关依赖:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.4.6</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-ecs</artifactId>
    <version>4.17.6</version>

运行结果如下,粗糙了点
Java对接腾讯云短信和阿里云天气预报

遇到的问题

Eclipse 创建Maven项目Select an Archetype为空解决方法

本文地址:https://blog.csdn.net/eininbebop/article/details/111877531

相关标签: 网络通信编程