发表于: 2017-09-28 21:30:52
1 643
今天完成的事情:
把第三方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
评论