package com.chinasofti.upload.image;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ConnectException;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HttpTest
{
public static Logger log=LoggerFactory.getLogger(HttpTest.class);
/**
* 发起https请求并获取结果
*
* @param requestUrl 请求地址
* @param requestMethod 请求方式(GET、POST)
* @param outputStr 提交的数据
* @return JSOMObject(通过JSONObject.get(key)的方式获取json对象的属性值)
*/
public static JSONObject httpRequst
(String requestUrl,String requetMethod,String outputStr)
{
JSONObject jsonobject=null;
StringBuffer buffer=new StringBuffer();
try
{
//创建SSLContext对象,并使用我们指定的新人管理器初始化
TrustManager[] tm={new MyX509TrustManager()};
SSLContext sslcontext=SSLContext.getInstance("SSL","SunJSSE");
sslcontext.init(null, tm, new java.security.SecureRandom());
//从上述SSLContext对象中得到SSLSocktFactory对象
SSLSocketFactory ssf=sslcontext.getSocketFactory();
URL url=new URL(requestUrl);
HttpsURLConnection httpUrlConn=(HttpsURLConnection)url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
//设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requetMethod);
if("GET".equalsIgnoreCase(requetMethod))
httpUrlConn.connect();
//当有数据需要提交时
if(null!=outputStr)
{
OutputStream outputStream=httpUrlConn.getOutputStream();
//注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
//将返回的输入流转换成字符串
InputStream inputStream=httpUrlConn.getInputStream();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream,"utf-8");
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
String str=null;
while((str = bufferedReader.readLine()) !=null)
{
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
//释放资源
inputStream.close();
inputStream=null;
httpUrlConn.disconnect();
jsonobject=JSONObject.fromObject(buffer.toString());
}
catch (ConnectException ce) {
// TODO: handle exception
log.error("Weixin server connection timed out.");
}
catch (Exception e) {
log.error("https request error:{}", e);
}
return jsonobject;
}
//获取access_token的接口地址(GET) 限200(次/天)
public final static String access_token_url="https://api.weixin.qq.com/cgi-bin/token?" +
"grant_type=client_credential&appid=APPID&secret=APPSECRET";
/**
* 获取access_token
*
* @param appid 凭证
* @param appsecret 密钥
* @return
* @throws JSONException
*/
public static AccessToken getaAccessToken(String appid,String appsecret)
{
AccessToken accessToken=null;
String requestUrl=access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
JSONObject jsonObject=httpRequst(requestUrl, "GET", null);
//如果请求成功
if(null !=jsonObject)
{
try
{
accessToken=new AccessToken();
accessToken.setToken(jsonObject.getString("access_token"));
accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
System.out.println("OK");
log.info("获取token成功 access_token:{} expires_in:{}",
jsonObject.getString("access_token"),jsonObject.getInt("expires_in"));
}
catch(JSONException e)
{
accessToken=null;
//获取token失败
log.error("获取token失败 errcode:{} errmsg:{}",
jsonObject.getInt("errcode"),jsonObject.getString("errmsg"));
}
}
return accessToken;
}
public static void main(String[] args)
{
String appid="**************";
String appsecret="*************";
HttpTest httptest=new HttpTest();
AccessToken result=null;
result=httptest.getaAccessToken(appid, appsecret);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
微信平台上传多媒体和获取ACCESS_TOKEN
共30个文件
jar:9个
java:4个
class:4个
5星 · 超过95%的资源 需积分: 9 111 下载量 154 浏览量
2014-04-02
09:03:26
上传
评论
收藏 1.5MB ZIP 举报
温馨提示
维系工作平台开发上传多媒体和获取ACCESS_TOKEN,其中有两个类,fileupload是上传多媒体获取mediaid,httptest类是获取accesstoken,运行时请先运行HTTPtest类,填写自己appid和appsecret,获取到accesstoken后,填写到fileupload类里,String sendUrl="http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=请在Httptest类里自己获取&type=填写响应类型(image/vdio等)";即可获取到MediaId
资源推荐
资源详情
资源评论
收起资源包目录
upload.zip (30个子文件)
upload
.project 2KB
.mymetadata 291B
src
com
chinasofti
upload
image
AccessToken.java 432B
MyX509TrustManager.java 668B
HttpTest.java 4KB
FileUpload.java 3KB
WebRoot
WEB-INF
classes
com
chinasofti
upload
image
FileUpload.class 4KB
AccessToken.class 781B
HttpTest.class 5KB
MyX509TrustManager.class 909B
lib
ezmorph.jar 84KB
json.jar 36KB
json-lib-2.2.2-jdk15.jar 141KB
commons-logging-1.1.1.jar 59KB
commons-lang.jar 203KB
org.slf4j_1.2.3.jar 32KB
log4j-1.2.15.jar 383KB
commons-beanutils-1.7.jar 184KB
commons-collections.jar 558KB
web.xml 404B
index.jsp 1KB
META-INF
MANIFEST.MF 36B
.myeclipse
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.jdt.core.prefs 395B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.core.resources.prefs 97B
org.eclipse.wst.common.component 456B
.jsdtscope 500B
.classpath 1KB
共 30 条
- 1
shinobu59
- 粉丝: 5
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页