资源简介
通用接口实现类LinkJOS
扩展于:public class LinkJOS extends LinkOAuth2(LinkOAuth2 extends JspEasy)
构造函数
LinkJOS(HttpServletRequest request,HttpServletResponse response)
京东JOS接口访问函数
public String link2(String link,String method,Bag sys,Bag apps,String appSecret,String file,String FileField)
作用:访问京东JOS平台的所有接口
参数:
String link,京东JOS平台接口访问地址,目前固定为:https://api.jd.com/routerjson
String method,向京东JOS平台提交数据时的方法,需要应用级别参数时建议用POST方法,不需要时用GET(参见后边的实例)
Bag sys,系统级别参数书包(一般只需在接口参数文件中放入接口方法即可,参见后边的实例)
Bag apps,应用级别参数书包(在接口参数文件中放入必须的应用级别参数,若不需要应用级别参数时直接用new Bag(-1)构造一个空书包即可,参见后边的实例)
String appSecret,应用证书中的App Secret,前边已经设置,固定用"@{pPage:app_secret}"即可
String file,调用上传文件接口上传文件(如图片)到京东JOS平台时的文件全名(含相对路径,如:images/logo.png),不是调用上传文件接口时为空字符串即可(参见后边的实例)
String FileField,调用上传文件接口上传文件(如图片)到京东JOS平台时的字段名,配合前边的参数,不是调用上传文件接口时为空字符串即可(参见后边的实例)
返回为京东JOS平台接口对应的JSON格式的字符串
JSON文本解析方法
public void parseJson(String json)
作用:解析京东JOS平台接口返回的JSON格式的字符串,并根据内容生成N个对应的书包
参数:String json,京东JOS平台接口返回的JSON格式的字符串
根据JSON文本的内容在系统中生成N个书包,根书包名称为j0,下一层的josn文本内容生成的书包名称用上一层的Key放在上一层的书名中,下边用实例说明寻找对应书包的方法:
如店铺信息查询接口jingdong.vender.shop.query返回的json文本为
{
"jingdong_vender_shop_query_responce": {
"shop_jos_result": {
"open_time": "",
"shop_id": "",
"category_main_name": "",
"category_main": "",
"vender_id": "",
"brief": "",
"logo_url": "",
"shop_name": ""
}
}
}
找出店铺信息书包名的方法如下
@{j0:jingdong_vender_shop_query_responce}
@{@{pPage:bag}:shop_jos_result}
这时候的@{pPage:bag}即为需要的店铺信息书包名
具体用法请阅读下载包中的《京东卖家如何快速开发网店工具软件》
代码片段和文件信息
package htok.apps;
import htok.Path;
import htok.tools.*;
import htok.we.html.*;
import htok.we.*;
import javax.servlet.http.*;
import javax.servlet.*;
import java.net.*;
import java.security.*;
import java.security.cert.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.io.*;
import java.util.*;
import javax.net.ssl.*;
import com.alibaba.fastjson.*;
public class linkJOS extends linkOAuth2
{
//构造对象
public linkJOS(HttpServletRequest requestHttpServletResponse response)
{
super(requestresponse);
}
private String cookie = ““;
private String user_agent=“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)“;
public String link2(String linkString methodBag sysBag appsString appSecretString fileString FileField)
{
//京东调用地址:https://api.jd.com/routerjson
int protocol = 0;
if(link.startsWith(“https“))protocol=1;
if(sys==null) sys = new Bag(-1);
if(apps==null) apps = new Bag(-1);
//参数和链接字符串
StringBuffer qs = new StringBuffer();
StringBuffer ps = new StringBuffer();
StringBuffer sb;
if(apps.getWidth()>0)
{
sb = new StringBuffer(“{“);
for(int i=0;i {
String name = apps.getKey(i);
if(i>0) sb.append(““);
sb.append(“\““).append(name).append(“\“:\““).append(apps.get(name)).append(“\““);
/*if(method.equalsIgnoreCase(“POST“) && file.equals(““))
{
if(ps.length()>0) ps.append(“&“);
ps.append(encode(name)).append(“=“).append(encode(apps.get(name)));
}*/
}
sb.append(“}“);
sys.set(“__360buy_param_json“sb.toString());
if(method.equalsIgnoreCase(“POST“))
ps.append(sb);
}
sb = new StringBuffer(appSecret);
for(int i=0;i {
String name = sys.getKey(i);
String _name = name;
if(name.startsWith(“__“)) _name = name.substring(2);
sb.append(_name).append(sys.get(name));
if(method.equalsIgnoreCase(“POST“) && “__360buy_param_json“.equals(name))
continue;
if(qs.length()>0) qs.append(“&“);
//if(“__360buy_param_json“.equals(name))
// qs.append(_name).append(“=“).append(sys.get(name));
//else
qs.append(encode(_name)).append(“=“).append(encode(sys.get(name)));
}
String sign = sign(sb.append(appSecret).toString());
qs.append(“&sign=“).append(sign.toUpperCase());
sb = new StringBuffer(link).append(“?“).append(qs);
link = sb.toString();
try{//访问
InputStream input = null;
if(protocol==0)
{
URL url = new URL(link);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setUseCaches(false);
connection.setRequestProperty(“Charsert“ “UTF-8“);
if(method.equals(“POST“) || !file.equals(““))
{
connection.setRequestMethod(“POST“);
connection.setRequestProperty(“Connection“ “Keep-Alive“);
connection.setRequestProperty(“Content-Type“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
.C.D... 0 2015-11-20 18:01 jos
.C.D... 0 2015-11-20 17:17 jos\ba
.C.D... 0 2015-11-20 17:17 jos\ba
.CA.... 3913 2009-03-25 09:34 jos\ba
.CA.... 172 2008-10-17 09:59 jos\ba
.CA.... 2748 2007-08-03 18:18 jos\ba
.CA.... 1029 2009-03-25 09:36 jos\ba
.CA.... 999 2009-03-25 09:34 jos\ba
.CA.... 872 2008-10-17 08:57 jos\ba
.CA.... 1651 2007-08-03 18:18 jos\ba
.C.D... 0 2015-11-20 17:17 jos\ba
.CA.... 3814 2008-10-19 18:23 jos\ba
.CA.... 4061 2008-11-04 11:42 jos\ba
.CA.... 5144 2008-10-22 09:45 jos\ba
.CA.... 4665 2008-10-19 18:23 jos\ba
.CA.... 613 2008-10-22 09:30 jos\ba
.CA.... 3817 2008-10-19 18:23 jos\ba
.CA.... 3882 2008-10-19 18:23 jos\ba
.CA.... 6100 2008-09-27 21:09 jos\ba
.CA.... 4681 2008-12-27 11:58 jos\ba
.CA.... 4270 2009-02-25 17:41 jos\ba
.CA.... 3847 2009-03-20 17:11 jos\ba
.CA.... 532 2008-07-01 23:31 jos\ba
.CA.... 307200 2015-05-01 01:03 jos\ba
.C.D... 0 2015-11-20 17:17 jos\ba
.CA.... 4929 2005-03-20 20:16 jos\ba
.CA.... 480 2009-08-21 15:00 jos\ba
.CA.... 1687 2005-03-23 22:22 jos\ba
.CA.... 799 2008-07-14 23:03 jos\ba
.CA.... 665 2010-08-19 18:12 jos\ba
............此处省略947个文件信息
相关资源
- 东北大学数据结构与算法课程设计实
- JSP基于网络超市商品销售管理系统的
- java语言程序设计_清华大学郑莉_ppt+源
- 基于JAVA的RSA文件加密软件的设计与实
- 基于JAVA CS远程监控系统软件的实现(
- JSP自动排课管理系统(源代码+论文
- JSP+ACCESS网上拍卖平台系统(源代码
- JAVA泡泡堂网络游戏的设计与实现(源
- java某百货店POS积分管理系统_积分点更
- JAVA局域网监听软件的设计与开发(源
- JAVA打飞机游戏毕业设计(源代码+论文
- Android英语四六级成绩查询软件源代码
- Android手电筒源代码 SOS报警功能 附带
- Java课程设计案例精编第二版-黄晓东完
- 房屋租售中介管理系统源代码java
- 软著申请60页的源代码文档生成工具
- java web企业日常管理系统源代码
- JAVA实现的SSL/TLS双向认证源代码
- BBS论坛项目全部源代码-MYSQL数据库
- Android USB 串口助手源代码
- 开源代码GPS跟踪系统
- Jsp仿淘宝网项目源代码
- java源代码,java源代码
- DTN协议族源代码
- 仓库管理系统JAVA源代码
- Android猜歌游戏源代码
- Android studio 通过以servlet搭建的服务器
- JSP MYSQL学生实习管理系统 源代码
- 关于拍照和相册的android源代码
- android 电子书阅读器源代码
评论
共有 条评论