springboot对接第三方短信接口整合redis,ActiveMQ
1.对接第三方短信接口需要模拟一个http请求
用http-client这个包来操作。
在pom.xml文件中加入http-client的包依赖
org.apache.httpcomponents httpclient
2.新建一个httputil类来模拟get/post请求
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;@Slf4j
public class HttpUtil {private static final String ENCODING = "UTF-8";public static String post(String url, Map paramsMap) {CloseableHttpClient client = HttpClients.createDefault();String responseText = "";CloseableHttpResponse response = null;try {HttpPost method = new HttpPost(url);if (paramsMap != null) {List paramList = new ArrayList();for (Map.Entry param : paramsMap.entrySet()) {NameValuePair pair = new BasicNameValuePair(param.getKey(), param.getValue());paramList.add(pair);}method.setEntity(new UrlEncodedFormEntity(paramList, ENCODING));}response = client.execute(method);HttpEntity entity = response.getEntity();if (entity != null) {responseText = EntityUtils.toString(entity);}} catch (Exception e) {log.error("http request failed",e);} finally {try {response.close();} catch (Exception e) {log.error("",e);}}return responseText;}public static String get(String url, Map paramsMap) {CloseableHttpClient client = HttpClients.createDefault();String responseText = "";CloseableHttpResponse response = null;try {String getUrl = url+"?";if (paramsMap != null) {for (Map.Entry param : paramsMap.entrySet()) {getUrl += param.getKey() + "=" + URLEncoder.encode(param.getValue(), ENCODING)+"&";}}HttpGet method = new HttpGet(getUrl);response = client.execute(method);HttpEntity entity = response.getEntity();if (entity != null) {responseText = EntityUtils.toString(entity);}} catch (Exception e) {log.error("http request failed",e);} finally {try {response.close();} catch (Exception e) {log.error("",e);}}return responseText;}}
Service接口:
public interface UserService {void sendVercode(String mobile, String ip) throws ustomException;}
Service实现类:
@Service
@Slf4j
public class UserServiceImpl implements UserService {private static final String VERIFYCODE_PREFIX = "verify.code.";private static final String SMS_QUEUE ="sms.queue"
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
