java怎样导入sdk

java怎样导入sdk,第1张

这个sdk是分不同版本的,如果是java的sdk的话只需要引入到你的工作目录中就可以,比如说jar文件放到WEB-INFO的lib目录下。如果是C或者C++写的DLL的sdk则需要你用java的JNA

如何用java开发一个sdk可以在千锋教育进行专业的学习,千锋教育是国内java开发教学的领导者,实力雄厚,放心可靠。

java开发一个sdk具体流程:

1、在Java工程中添加该SDK中dist目录下的jar库,并添加到你的编译路径中。

2、在代码中import相应的包名。

3、非web应用请修改和查阅***.java,web应用请修改config.jsp,查阅index.jsp, 获得包括oauth登录请求及其它功能请求的方法接口。

4、commons包里面的java类实现了目前腾讯微博开发平台的所有接口,除第一个参数是oauth对象外其他都和开发平台的api文档一致,类名和方法名亦和api一致:比如获取主页时间线的api是:http://open.t.qq.com/api/statuses/home_timeline那么此SDK的java类是:Statuses_***.java,实现方法是home_timeline(a,b,c,d...)。

5、此SDK为半原创,思路和部分方法函数参考了官方(热心网友sampan)提供的java SDK(http://open.t.qq.com/resource.php?i=3,1#sdk3) 和网上相关的Oauth授权资料。

6、javawind-qweibo-api-1.0.jar为本sdk生成的jar,如果有修改源码,记得重新生成此jar。

想要了解更多java开发的相关信息,推荐咨询千锋教育。千锋励精图治,不改教育初心。十一年来,千锋以政策为引导,不断完善国内特色现代职业教育体系建设,充分发挥教研师资队伍使命,构建品质教育,加大创新型人才培养力度,为经济发展提供智力人才和智力支撑,成为新时期职业教育发展的新方向,在同行业中有很高的美誉度。

1.首先我们新建一个Java开发包WeiXinSDK

2.包路径:com.ansitech.weixin.sdk

测试的前提条件:

假如我的公众账号微信号为:vzhanqun

我的服务器地址为:http://www.vzhanqun.com/

下面我们需要新建一个URL的请求地址

我们新建一个Servlet来验证URL的真实性,具体接口参考

http://mp.weixin.qq.com/wiki/index.php?title=接入指南

3.新建com.ansitech.weixin.sdk.WeixinUrlFilter.java

这里我们主要是获取微信服务器法师的验证信息,具体验证代码如下

[java] view plain copy print?

package com.ansitech.weixin.sdk

import com.ansitech.weixin.sdk.util.SHA1

import java.io.IOException

import java.util.ArrayList

import java.util.Collections

import java.util.Comparator

import java.util.List

import javax.servlet.Filter

import javax.servlet.FilterChain

import javax.servlet.FilterConfig

import javax.servlet.ServletException

import javax.servlet.ServletRequest

import javax.servlet.ServletResponse

import javax.servlet.http.HttpServletRequest

import javax.servlet.http.HttpServletResponse

public class WeixinUrlFilter implements Filter {

//这个Token是给微信开发者接入时填的

//可以是任意英文字母或数字,长度为3-32字符

private static String Token = "vzhanqun1234567890"

@Override

public void init(FilterConfig config) throws ServletException {

System.out.println("WeixinUrlFilter启动成功!")

}

@Override

public void doFilter(ServletRequest req, ServletResponse res,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req

HttpServletResponse response = (HttpServletResponse) res

//微信服务器将发送GET请求到填写的URL上,这里需要判定是否为GET请求

boolean isGet = request.getMethod().toLowerCase().equals("get")

System.out.println("获得微信请求:" + request.getMethod() + " 方式")

if (isGet) {

//验证URL真实性

String signature = request.getParameter("signature")// 微信加密签名

String timestamp = request.getParameter("timestamp")// 时间戳

String nonce = request.getParameter("nonce")// 随机数

String echostr = request.getParameter("echostr")//随机字符串

List<String>params = new ArrayList<String>()

params.add(Token)

params.add(timestamp)

params.add(nonce)

//1. 将token、timestamp、nonce三个参数进行字典序排序

Collections.sort(params, new Comparator<String>() {

@Override

public int compare(String o1, String o2) {

return o1.compareTo(o2)

}

})

//2. 将三个参数字符串拼接成一个字符串进行sha1加密

String temp = SHA1.encode(params.get(0) + params.get(1) + params.get(2))

if (temp.equals(signature)) {

response.getWriter().write(echostr)

}

} else {

//处理接收消息

}

}

@Override

public void destroy() {

}

}

好了,不过这里有个SHA1算法,我这里也把SHA1算法的源码给贴出来吧!

4.新建com.ansitech.weixin.sdk.util.SHA1.java

[java] view plain copy print?

/*

* 微信公众平台(JAVA) SDK

*

* Copyright (c) 2014, Ansitech Network Technology Co.,Ltd All rights reserved.

* http://www.ansitech.com/weixin/sdk/

*

* Licensed under the Apache License, Version 2.0 (the "License")

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

package com.ansitech.weixin.sdk.util

import java.security.MessageDigest

/**

* <p>Title: SHA1算法</p>

*

* @author qsyang<yangqisheng274@163.com>

*/

public final class SHA1 {

private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5',

'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}

/**

* Takes the raw bytes from the digest and formats them correct.

*

* @param bytes the raw bytes from the digest.

* @return the formatted bytes.

*/

private static String getFormattedText(byte[] bytes) {

int len = bytes.length

StringBuilder buf = new StringBuilder(len * 2)

// 把密文转换成十六进制的字符串形式

for (int j = 0j <lenj++) {

buf.append(HEX_DIGITS[(bytes[j] >>4) &0x0f])

buf.append(HEX_DIGITS[bytes[j] &0x0f])

}

return buf.toString()

}

public static String encode(String str) {

if (str == null) {

return null

}

try {

MessageDigest messageDigest = MessageDigest.getInstance("SHA1")

messageDigest.update(str.getBytes())

return getFormattedText(messageDigest.digest())

} catch (Exception e) {

throw new RuntimeException(e)

}

}

}

5.把这个Servlet配置到web.xml中

[html] view plain copy print?

<filter>

<description>微信消息接入接口</description>

<filter-name>WeixinUrlFilter</filter-name>

<filter-class>com.ansitech.weixin.sdk.WeixinUrlFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>WeixinUrlFilter</filter-name>

<url-pattern>/api/vzhanqun</url-pattern>

</filter-mapping>

好了,接入的开发代码已经完成。

6.下面就把地址URL和密钥Token填入到微信申请成为开发者模式中吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11424555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存