发表于: 2017-09-28 21:30:52

1 641


今天完成的事情:

把第三方api整合到项目中

但是我不知道怎么把传上去的图片变成头像。。

public boolean sendEmail(String email){
try{//邮箱验证的逻辑块
       HttpClient httpclient = HttpClientBuilder.create().build();
       HttpPost httpost = new HttpPost("http://api.sendcloud.net/apiv2/mail/send");

       List params = new ArrayList();
       // 您需要登录SendCloud创建API_USER,使用API_USER和API_KEY才可以进行邮件的发送。
       params.add(new BasicNameValuePair("apiUser", "/"));
       params.add(new BasicNameValuePair("apiKey", "/"));
       params.add(new BasicNameValuePair("from", "sendcloud@sendcloud.org"));
       params.add(new BasicNameValuePair("fromName", "Father"));
       params.add(new BasicNameValuePair("to", email));
       params.add(new BasicNameValuePair("subject", "来自SendCloud的邮件!"));
       params.add(new BasicNameValuePair("html", "恭喜你,终于TMD收到邮件了!"));

       httpost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
       // 请求
       HttpResponse response = httpclient.execute(httpost);
       // 处理响应
       if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { // 正常返回
           // 读取xml文档
           String result = EntityUtils.toString(response.getEntity());
           System.out.println(result);
           return true;
       } else {
System.err.println("error");
       }
httpost.releaseConnection();

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

public void sendMessage(String mobile,String number){

HashMap<String, Object> result = null;
       CCPRestSmsSDK restAPI= new CCPRestSmsSDK();
       restAPI.init("app.cloopen.com", "8883");
       restAPI.setAccount("/", "/");
       restAPI.setAppId("/");
       result = restAPI.sendTemplateSMS(mobile,"1" ,new String[]{number,"1"});
       System.out.println("SDKTestGetSubAccounts result=" + result);
   if ("000000".equals(result.get("statusCode"))) {
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"));
   }

}

public void sendPicture(){
Configuration cfg = new Configuration(Zone.zone2());
   //...其他参数参考类注释
   UploadManager uploadManager = new UploadManager(cfg);
   //...生成上传凭证,然后准备上传
   String accessKey = "/";
   String secretKey = "/";
   String bucket = "yaoyuan";
   //如果是Windows情况下,格式是 D:\\qiniu\\test.png
   String localFilePath = "G:\\01.jpg";
   //默认不指定key的情况下,以文件内容的hash值作为文件名
   String key = null;
   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
       }
}
}
@RequestMapping(value = "/register",method = RequestMethod.POST)
public String register(User user, Integer message, HttpServletRequest request){
HttpSession session = request.getSession();
   Integer verify= (Integer) session.getAttribute("verify");
   logger.info("verify="+verify);
   logger.info("message="+message);
   if (message.equals(verify)&&message != null){
User user1=new User();
       user1.setUser(user.getUser());
       String md5= MD5Util.stringToMD5(user.getUser()+user.getPassword());
       user1.setPassword(md5);
       user1.setMobile(user.getMobile());
       user1.setEmail(user.getEmail());
       userService.sendEmail(user.getEmail());
       userService.insert(user1);
       return "success";
   }else{
return "fail";
   }
}

//获取验证码
@RequestMapping(value = "/mobile",method = RequestMethod.GET)
public void getVerify(String mobile,HttpServletRequest request){
logger.info("mobile number=" + mobile);
   //验证码
   Integer verify = (int)((Math.random()*9+1)*100000);
   String number=verify.toString();
   userService.sendMessage(mobile,number);
   HttpSession session = request.getSession();
   session.setAttribute("verify",verify);
}

之前短信一直不好用,卡了挺长时间

我把它改成了一个工具类单独测是没问题的,但是启动项目就无法初始化短信模块,后来发现是jar包没打。。。

问题来了,我都没有jar包,没有依赖,它自己测试为什么可以运行。。

public class SMS {

public static void main(String[] args) {
HashMap<String, Object> result = null;
       CCPRestSmsSDK restAPI= new CCPRestSmsSDK();
       restAPI.init("app.cloopen.com", "8883");
       restAPI.setAccount("/", "/");
       restAPI.setAppId("/");
       result = restAPI.sendTemplateSMS("1830000000","1" ,new String[]{"7777","1"});
       System.out.println("SDKTestGetSubAccounts result=" + result);
       if ("000000".equals(result.get("statusCode"))) {
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"));
       }

}

利用spring来存放密码之类的东西

<context:property-placeholder location="classpath:db.properties,classpath:sms.properties"/>
<bean id="smsApi" class="com.jnshu.utils.SMS">
   <property name="serverIP" value="${sms.serverIP}"/>
   <property name="serverPort" value="${sms.serverPort}"/>
   <property name="accountSid" value="${sms.accountSid}"/>
   <property name="accountToken" value="${sms.accountToken}"/>
   <property name="appID" value="${sms.appID}"/>
</bean>

在controller里注入bean即可

明天计划的事情:

尽快结束任务7


返回列表 返回列表
评论

    分享到