java 微信获取用户地理位置_微信开发获取地理位置实例(java,非常详细,附工程源码)...

packagecom.luo.util;importjava.io.IOException;importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Set;importjava.util.UUID;importnet.sf.json.JSONObject;importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.NameValuePair;importorg.apache.http.ParseException;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.client.methods.HttpUriRequest;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.message.BasicNameValuePair;importorg.apache.http.protocol.HTTP;importorg.apache.http.util.EntityUtils;public classHttpXmlClient {public static String post(String url, Mapparams) {

DefaultHttpClient httpclient= newDefaultHttpClient();

String body= null;

HttpPost post=postForm(url, params);

body=invoke(httpclient, post);

httpclient.getConnectionManager().shutdown();returnbody;

}public staticString get(String url) {

DefaultHttpClient httpclient= newDefaultHttpClient();

String body= null;

HttpGet get= newHttpGet(url);

body=invoke(httpclient, get);

httpclient.getConnectionManager().shutdown();returnbody;

}private staticString invoke(DefaultHttpClient httpclient,

HttpUriRequest httpost) {

HttpResponse response=sendRequest(httpclient, httpost);

String body=paseResponse(response);returnbody;

}private staticString paseResponse(HttpResponse response) {

HttpEntity entity=response.getEntity();

String charset=EntityUtils.getContentCharSet(entity);

String body= null;try{

body=EntityUtils.toString(entity);

}catch(ParseException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}returnbody;

}private staticHttpResponse sendRequest(DefaultHttpClient httpclient,

HttpUriRequest httpost) {

HttpResponse response= null;try{

response=httpclient.execute(httpost);

}catch(ClientProtocolException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}returnresponse;

}private static HttpPost postForm(String url, Mapparams) {

HttpPost httpost= newHttpPost(url);

List nvps = new ArrayList();

Set keySet =params.keySet();for(String key : keySet) {

nvps.add(newBasicNameValuePair(key, params.get(key)));

}try{

httpost.setEntity(newUrlEncodedFormEntity(nvps, HTTP.UTF_8));

}catch(UnsupportedEncodingException e) {

e.printStackTrace();

}returnhttpost;

}public static voidmain(String[] args) {//获取access_token

Map params = new HashMap();

params.put("corpid","wx5f24fa0db1819ea2");

params.put("corpsecret","uQtWzF0bQtl2KRHX0amekjpq8L0aO96LSpSNfctOBLRbuYPO4DUBhMn0_v2jHS-9");

String xml= HttpXmlClient.post("https://qyapi.weixin.qq.com/cgi-bin/gettoken",params);

JSONObject jsonMap=JSONObject.fromObject(xml);

Map map = new HashMap();

Iterator it =jsonMap.keys();while(it.hasNext()) {

String key=(String) it.next();

String u=jsonMap.get(key).toString();

map.put(key, u);

}

String access_token= map.get("access_token");

System.out.println("access_token=" +access_token);//获取ticket

params.put("access_token",access_token);

xml= HttpXmlClient.post("https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket",params);

jsonMap=JSONObject.fromObject(xml);

map= new HashMap();

it=jsonMap.keys();while(it.hasNext()) {

String key=(String) it.next();

String u=jsonMap.get(key).toString();

map.put(key, u);

}

String jsapi_ticket= map.get("ticket");

System.out.println("jsapi_ticket=" +jsapi_ticket);//获取签名signature

String noncestr =UUID.randomUUID().toString();

String timestamp= Long.toString(System.currentTimeMillis() / 1000);

String url="http://mp.weixin.qq.com";

String str= "jsapi_ticket=" + jsapi_ticket +

"&noncestr=" + noncestr +

"&timestamp=" + timestamp +

"&url=" +url;//sha1加密

String signature =SHA1(str);

System.out.println("noncestr=" +noncestr);

System.out.println("timestamp=" +timestamp);

System.out.println("signature=" +signature);//最终获得调用微信js接口验证需要的三个参数noncestr、timestamp、signature

}/***@author:罗国辉

* @date: 2015年12月17日 上午9:24:43

* @description: SHA、SHA1加密

* @parameter: str:待加密字符串

*@return: 加密串

**/

public staticString SHA1(String str) {try{

MessageDigest digest=java.security.MessageDigest

.getInstance("SHA-1"); //如果是SHA加密只需要将"SHA-1"改成"SHA"即可

digest.update(str.getBytes());byte messageDigest[] =digest.digest();//Create Hex String

StringBuffer hexStr = newStringBuffer();//字节数组转换为 十六进制 数

for (int i = 0; i < messageDigest.length; i++) {

String shaHex= Integer.toHexString(messageDigest[i] & 0xFF);if (shaHex.length() < 2) {

hexStr.append(0);

}

hexStr.append(shaHex);

}returnhexStr.toString();

}catch(NoSuchAlgorithmException e) {

e.printStackTrace();

}return null;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值