阿里云短信服务真是太坑了把 ,,,,,, 昨天接到需求需要将阿里云的短信服务接入到软件中进行登陆验证 这样我们的目录下就会显示 然后就是我们的测试代码块 当我第一次运行时 ,意料之中 崩溃了 buildgradle中添加了json依赖 然后当我再次运行时又报错 我最终的代码: Android9.0 默认是禁止所有的http 请求的,需要在代码中设置如下代码才可以正常进行网络请求: android:usesCleartextTraffic=“true”。 如果对你有用 记得哟 爱你 mua~
老铁们 我太难了
我用的是阿里云的javaSDK,因为这里我用的是androidstudio所以我直接选择使用添加jar包的方式来继承(噩梦开始的地方)AndroidStudio添加jar包方式
找到我们的libs目录 将我们下载好的sdk复制到该目录下
然后在我们的gradle app中的Android中添加 sourceSets{ main{ jniLibs.srcDirs=['libs'] } }
说明添加成功添加依赖
点击ok然后我们的gradle中就会多一句依赖 就说明我们添加成功了
ok依赖添加完成 让我们来一步步实现短信功能
首先是阿里云提供的代码块:
然后就是我们的代码块 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>"); final IAcsClient client = new DefaultAcsClient(profile); //构建请求 final CommonRequest request = new CommonRequest(); request.setMethod(MethodType.POST); request.setDomain("dysmsapi.aliyuncs.com"); request.setVersion("2017-05-25"); request.setAction("SendSms"); //自定义参数->手机号、验证码、签名、模板 request.putQueryParameter("RegionId", "cn-hangzhou"); request.putQueryParameter("PhoneNumbers", "you phonenumber"); request.putQueryParameter("SignName", "签名"); request.putQueryParameter("TemplateCode", "短信模板"); HashMap<String,Object> map = new HashMap<>(); map.put("code","2233"); request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map)); try { CommonResponse response = client.getCommonResponse(request); return response.getHttpResponse().isSuccess(); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); }
报未找到这个类
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/gson/JsonParser;
然后我百度了一个 是一个json解析数据的工具解决方法:
implementation 'com.google.code.gson:gson:2.8.6'
扩展 :想要使用JSONObject.toJSONString(map)方法需要添加依赖
implementation 'com.alibaba:fastjson:1.1.71.android'
又说类找不到
然后这里需要添加javax.xml.bind.jar包的依赖
当我再次运行时 还是报错 。。。。
然后又报一个类找不到 然后经过百度才发现是还需要添加一个xercesImpl.jar包 才可以 终于终于可以了
这里是最终需要的jar包所需要的jar包都上传到我上传的资源中了 需要的可以直接去下载压缩包
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.clicked); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>"); final IAcsClient client = new DefaultAcsClient(profile); //构建请求 final CommonRequest request = new CommonRequest(); request.setMethod(MethodType.POST); request.setDomain("dysmsapi.aliyuncs.com"); request.setVersion("2017-05-25"); request.setAction("SendSms"); //自定义参数->手机号、验证码、签名、模板 request.putQueryParameter("RegionId", "cn-hangzhou"); request.putQueryParameter("PhoneNumbers", "you phonenumber"); request.putQueryParameter("SignName", "签名"); request.putQueryParameter("TemplateCode", "短信模板"); HashMap<String,Object> map = new HashMap<>(); map.put("code","2233"); request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map)); new Thread(new Runnable(){ @Override public void run() { try { CommonResponse response = client.getCommonResponse(request); System.out.println(response.getData()); Log.i("ssssss","@"+response.getData()); } catch (ServerException e) { Log.i("wokankna","@"+e.toString()); e.printStackTrace(); } catch (ClientException e) { Log.i("wochouhou","@"+e.toString()); e.printStackTrace(); } } }).start(); } }); } }
需要的依赖
implementation 'com.alibaba:fastjson:1.1.71.android' implementation 'com.google.code.gson:gson:2.8.6'
Manifest文件:
欧克 这就结束了 发送一下 看看效果:
这就完成咯 有什么不懂得可以私信我或者评论 看到我都会一一解答得
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算