題目
1.使用POST方式發送請求到https://img.guangying.net/test/
2.需要帶兩個參數
name 姓名,需要使用utf-8格式urlencode處理
key 簽名,name的值做md5處理
3.返回結果爲有經過base64處理的utf-8字符
Maven依賴
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
<!-- httpcomponents -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
函數入口
package com.usc.huangjiapeng;
import java.net.URLEncoder;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class T {
public static void main(String[] args) {
try {
String name = IdUtil.genMd5("黃家鵬");
String key = URLEncoder.encode("聯繫方式15115451867", "utf-8");
String msg = "{'name':" + name + ",'key':" + key + "}";
String string = "https://img.guangying.net/test/";
String sendHttpPost = T
.sendHttpPost("https://img.guangying.net/test/", msg);
System.out.println("3.返回結果爲有經過base64處理的utf-8字符:" + sendHttpPost);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String sendHttpPost(String url, String param)
throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Content-Type", "application/json");
httpPost.setEntity(new StringEntity(param));
CloseableHttpResponse response = httpClient.execute(httpPost);
System.out.println("訪問狀態" + response.getStatusLine().getStatusCode());
HttpEntity entity = response.getEntity();
String responseContent = EntityUtils.toString(entity, "UTF-8");
responseContent = Base64Util.encodeData(responseContent);
response.close();
httpClient.close();
return responseContent;
}
}
IdUtil.java MD5加密工具類
package com.usc.huangjiapeng;
import java.security.MessageDigest;
import java.util.UUID;
import sun.misc.BASE64Encoder;
public class IdUtil {
/*
* UUID
*/
public static String genUUId() {
return UUID.randomUUID().toString();
}
/*
* Md5加密
*/
public static String genMd5(String str) {
try {
// 確定計算方法
MessageDigest md5 = MessageDigest.getInstance("MD5");
BASE64Encoder base64en = new BASE64Encoder();
// 加密後的字符串
String newstr = base64en.encode(md5.digest(str.getBytes("utf-8")));
return newstr;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
Base64Util.java Base64加密工具類
package com.usc.huangjiapeng;
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/***
* @class Base64Util
* @Description: TODO Base64加密 解碼工具
* @author usc hangjiapeng
* @Email 1625545295qq.com
* @date 2019年2月28日 下午11:07:12
*
*/
public class Base64Util {
private static final Logger LOG = LoggerFactory.getLogger(Base64Util.class);
// 字符串編碼
private static final String UTF_8 = "UTF-8";
/**
* 加密字符串
*
* @param inputData
* @return
*/
public static String decodeData(String inputData) {
try {
if (null == inputData) {
return null;
}
return new String(Base64.decodeBase64(inputData.getBytes(UTF_8)),
UTF_8);
} catch (UnsupportedEncodingException e) {
LOG.error(inputData, e);
}
return null;
}
/**
* 解密加密後的字符串
*
* @param inputData
* @return
*/
public static String encodeData(String inputData) {
try {
if (null == inputData) {
return null;
}
return new String(Base64.encodeBase64(inputData.getBytes(UTF_8)),
UTF_8);
} catch (UnsupportedEncodingException e) {
LOG.error(inputData, e);
}
return null;
}
public static void main(String[] args) {
System.out.println(Base64Util.encodeData("黃家鵬"));
String enStr = Base64Util.encodeData("黃家鵬");
System.out.println(Base64Util.decodeData(enStr));
}
}