package com.yuanjun.weixindemo.translate;
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Map;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
class HttpGet {
protected static final int SOCKET_TIMEOUT = 10000; // 10S
protected static final String GET = "GET";
public static String get(String host, Map<String, String> params) {
try {
// 设置SSLContext
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[] { myX509TrustManager }, null);
String sendUrl = getUrlWithQueryString(host, params);
// System.out.println("URL:" + sendUrl);
URL uri = new URL(sendUrl); // 创建URL对象
HttpURLConnection conn = (HttpURLConnection) uri.openConnection();
if (conn instanceof HttpsURLConnection) {
((HttpsURLConnection) conn).setSSLSocketFactory(sslcontext.getSocketFactory());
}
conn.setConnectTimeout(SOCKET_TIMEOUT); // 设置相应超时
conn.setRequestMethod(GET);
int statusCode = conn.getResponseCode();
if (statusCode != HttpURLConnection.HTTP_OK) {
System.out.println("Http错误码:" + statusCode);
}
// 读取服务器的数据
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
StringBuilder builder = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null) {
builder.append(line);
}
String text = builder.toString();
close(br); // 关闭数据流
close(is); // 关闭数据流
conn.disconnect(); // 断开连接
return text;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (KeyManagementException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
public static String getUrlWithQueryString(String url, Map<String, String> params) {
if (params == null) {
return url;
}
StringBuilder builder = new StringBuilder(url);
if (url.contains("?")) {
builder.append("&");
} else {
builder.append("?");
}
int i = 0;
for (String key : params.keySet()) {
String value = params.get(key);
if (value == null) { // 过滤空的key
continue;
}
if (i != 0) {
builder.append('&');
}
builder.append(key);
builder.append('=');
builder.append(encode(value));
i++;
}
return builder.toString();
}
protected static void close(Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 对输入的字符串进行URL编码, 即转换为%20这种形式
*
* @param input 原文
* @return URL编码. 如果编码失败, 则返回原文
*/
public static String encode(String input) {
if (input == null) {
return "";
}
try {
return URLEncoder.encode(input, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return input;
}
private static TrustManager myX509TrustManager = new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
};
}
没有合适的资源?快使用搜索试试~ 我知道了~
java开发微信公众号
共79个文件
class:32个
java:31个
properties:4个
3星 · 超过75%的资源 需积分: 14 233 下载量 139 浏览量
2017-12-09
12:27:54
上传
评论 5
收藏 122KB ZIP 举报
温馨提示
采用springboot框架开发微信公众号,实现自动回复,图片回复,消息交互,创建自定义菜单,采用百度翻译接口实现智能翻译等等,采用合理结构,便于二次开发
资源推荐
资源详情
资源评论
收起资源包目录
weixindemo.zip (79个子文件)
weixindemo
weixindemo
.gitignore 249B
.mvn
wrapper
maven-wrapper.jar 46KB
maven-wrapper.properties 110B
src
main
resources
templates
static
application.properties 237B
java
com
yuanjun
weixindemo
WeixindemoApplication.java 322B
controller
LoginController.java 3KB
redis
RedisUtil.java 2KB
util
Message
TextMessageUtil.java 1KB
ImageMessageUtil.java 2KB
MessageUtil.java 2KB
CheckUtil.java 738B
UploadUtil.java 4KB
BaseMessageUtil.java 630B
SHA1.java 1KB
MenuUtil.java 2KB
WeiXinUtil.java 3KB
translate
TransApi.java 2KB
HttpGet.java 5KB
MD5.java 4KB
bean
AccessToken.java 487B
VoiceMessage.java 372B
Button.java 707B
Image.java 354B
ClickButton.java 376B
MessageText.java 921B
Menu.java 352B
ViewButton.java 243B
ImageMessage.java 387B
BaseMessage.java 956B
Voice.java 343B
constant
UrlType.java 259B
test
java
com
yuanjun
weixindemo
TestMenu.java 506B
WeixindemoApplicationTests.java 343B
Test.java 752B
TestTranslate.java 349B
.classpath 1KB
mvnw 6KB
.settings
org.eclipse.m2e.core.prefs 90B
org.eclipse.core.resources.prefs 155B
org.eclipse.jdt.core.prefs 243B
pom.xml 2KB
mvnw.cmd 5KB
target
classes
META-INF
MANIFEST.MF 345B
maven
com.yuanjun
weixindemo
pom.properties 251B
pom.xml 2KB
com
yuanjun
weixindemo
controller
LoginController.class 4KB
redis
RedisUtil.class 2KB
WeixindemoApplication.class 734B
util
Message
MessageUtil.class 3KB
ImageMessageUtil.class 3KB
TextMessageUtil.class 2KB
BaseMessageUtil.class 381B
MenuUtil.class 2KB
SHA1.class 2KB
UploadUtil.class 5KB
CheckUtil.class 1KB
WeiXinUtil.class 4KB
translate
TransApi.class 3KB
HttpGet$1.class 999B
HttpGet.class 5KB
MD5.class 3KB
bean
Button.class 1KB
ImageMessage.class 652B
ViewButton.class 576B
Voice.class 565B
MessageText.class 1KB
Image.class 565B
AccessToken.class 805B
ClickButton.class 579B
BaseMessage.class 1KB
VoiceMessage.class 652B
Menu.class 606B
constant
UrlType.class 485B
application.properties 237B
test-classes
com
yuanjun
weixindemo
WeixindemoApplicationTests.class 652B
TestMenu.class 1KB
TestTranslate.class 809B
Test.class 1KB
.project 770B
共 79 条
- 1
资源评论
- Hermit_20092018-07-30节省一部分工作,有帮助,谢谢
- 起个好昵称怎么这么难呢2018-06-29采用springboot框架开发微信公众号,实现自动回复,图片回复,消息交互,创建自定义菜单,采用百度翻译接口实现智能翻译等等,采用合理结构,便于二次开发
- 烂木2018-07-25这个demo跟博客里的不一样,初学者表示弄不出来,很尴尬...
- 萧笑2019-03-31一般 节省一部分工作,有帮助
shenbug
- 粉丝: 410
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功