发表于: 2017-08-11 22:03:30

1 810


任务7总结:

今天学的是任务8的rmi,不过我任务7的总结还没写完,今天日报就写任务7总结,明天提交任务.今天学的内容将在明天结合明天学的内容输出在明天的日报上

很绕对吧,滑稽

-------------------------------------------------------------------------------------------------------------------

第一步,在mysql表中和model表中添加图片,phone等字段,相应添加和更改被他们关联着的代码,这个没什么可说的了,细心点改完就ok.

第二步,申请容联云,这个在师兄们做这一步的时候,我看到注册需要手持身份证什么的,因为身份证快到期了,怕以后注册不了做不了这个,当时就跟着注册了.现在看来果然是对的,好像现在注册不送测试资金还是什么,反正不好做了.

去容联官网下载他的SDK,使用它提供的两个类

DKTestSendTemplateSMS

CCPRestSDK

找到自己容联的

private String SERVER_IP;    //服务器地址
private String SERVER_PORT;    //服务器端口
private String ACCOUNT_SID;    //容联提供的账号
private String ACCOUNT_TOKEN;    //容联提供的令牌
public String App_ID;    //容联提供的appid

这些数据,放在后面类中封装好的方法中

 public  void sentcode(String phone,String code) {
HashMap<String, Object> result = null;
       CCPRestSDK restAPI = new CCPRestSDK();
       restAPI.init("app.cloopen.com", "8883");
       // 初始化服务器地址和端口,生产环境配置成app.cloopen.com,端口是8883.
       restAPI.setAccount(
"8a216da85bf14b6a015c09bcd0f806b2", "b2cb6df3bcfb467d940208f9592b7b38");
       // 初始化主账号名称和主账号令牌,登陆云通讯网站后,可在控制首页中看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN。
       restAPI.setAppId("8aaf07085d7cf73f015d7df51ad200ce");
       // 请使用管理控制台中已创建应用的APPID。
       result = restAPI.sendTemplateSMS(phone, "1", new String[]{code, "5"});
       System.out.println("SDKTestGetSubAccounts result=" + result);
       if ("000000".equals(result.get("statusCode"))) {
//正常返回输出data包体信息(map)
           HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");
           Set<String> keySet = data.keySet();
           for (String key : keySet) {
Object object = data.get(key);
               System.out.println(key + " = " + object);
           }
} else {
//异常返回输出错误码和错误信息
           System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));
       }
}
}

然后用向自己的测试号码发送短信,成功接收.图就不放了


期间出了个小插曲.在我下完之后测试成功的第二天,把他加入我的项目中,发现居然失败了,报错是该号码不是我的注册测试号码,无法发送.我回到原来的例子发也是不行.去容联添加一个新的测试号码也不行

找了半天问题,然后发现他官网的sdk居然更新了! 他更新居然不兼容以前的版本! 一定是容联的问题!

于是去找客服,然后客服去找运维,然后估计一阵甩锅.一天后客服向我反映能用了,于是ok


第三步是七牛云,这个是参考师兄的视频写出来的,也是去找SDK,和容联一样,down下来后导入jar包,然后测试使用

师兄简书链接在此http://www.jianshu.com/p/25a3531ade3d

public class qiniuyunSDK {

public static void main(String[] args) throws Exception{
//打开文件选择框:
       //这一段是志勇那看到的,我在网页sdk中找不到这一段,之后下载他的sdk,去里面搜索fc看能不能找到这段
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       JFileChooser fc=new JFileChooser();
       fc.showOpenDialog(null);
       String filePath=""+fc.getSelectedFile();
       System.out.println("选择的文件路径:"+filePath);//输出文件路径

       //把单斜杠变成双斜杠,我猜是为了防止路径输入错误导致无法传
       String newURL=filePath.replaceAll("\\\\","\\\\"+"\\\\");
       System.out.println("转以后的文件路径:"+newURL);


//构造一个带指定Zone对象的配置类
       Configuration cfg = new Configuration(Zone.zone2());
//...其他参数参考类注释

       UploadManager uploadManager = new UploadManager(cfg);
       //...生成上传凭证,然后准备上传
       String accessKey = "zSapXCbTCZlAfPLF1FKGdWDRplwctF2IVhef5iT2";
       String secretKey = "j_ZfQdGTghQeQKMUBwqFAdjjWS2-s67sGeV7yh0M";
       String bucket = "liujiaming";
       //如果是Windows情况下,格式是 D:\\qiniu\\test.png
       String localFilePath = "D:\\www.png";
       //默认不指定key的情况下,以文件内容的hash值作为文件名
       String key = "www.png";

       Auth auth = Auth.create(accessKey, secretKey);
       String upToken = auth.uploadToken(bucket);

       try {
Response response = uploadManager.put(localFilePath, key, upToken);
           //解析上传成功的结果
           DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
           System.out.println(putRet.key);
           System.out.println(putRet.hash);
       } catch (QiniuException ex) {
Response r = ex.response;
           System.err.println(r.toString());
           try {
System.err.println(r.bodyString());
           } catch (QiniuException ex2) {
//ignore
           }
}

Response response = uploadManager.put(localFilePath, key, upToken);
       //解析上传成功的结果
       DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
       System.out.println(putRet.key);
       System.out.println(putRet.hash);

   }
}


同样把自己的上传凭证和路径(即两个key和bucket)加上,那个bucket需要新建一个存储空间,填的是存储空间的名字.

唯一的问题在于那段志勇自己写的方法,我是真的无法在sdk中找到,那么他是怎么知道要这么写的呢?或许这就是大佬吧.


碰到的最大一个坑是jar包问题

七牛云加上去后打war包报错说找不到

明明project structure里打好了第三方sdk的jar包,为什么install重新打包却报错,错在找不到导的那个包,但我明明把包打进项目了,跑起来也没问题,也没爆红,但就是打不上war包
后来发现需要手动把本地jar安装到本地仓库和将本地项目打包并安装到本地资源仓库
我的例子里的具体代码如下:

mvn install:install-file -Dfile=D:/CCP_REST_SMS_DEMO_JAVA_v2.6r/CCP_REST_SMS_SDK_JAVA_v2.6.3r.jar  -DgroupId=com.cloopen.rest.sdk.utils  -DartifactId=utils  -Dversion=2.6.3r  -Dpackaging=jar



然后在pom.xml文件中添加该依赖

ok,成功


例子可以使用了,放在https://github.com/a2102500/task7plus


参考过的其他链接:

http://www.jianshu.com/p/d37d6b35f945

+各大师兄日报






返回列表 返回列表
评论

    分享到