资源简介
通用接口实现类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写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- android-support-v4.jar已打包进去源代码
- Java记事本【源代码 实验报告】
- java实现小型函数画图板(附源代码、
- 在线考试系统源代码(jsp)
- Android通讯录的源代码
- java编写21点游戏(附源代码)
- java 原创 坦克大战 源码 带有详细注释
- java sql2000员工管理系统数据库、文档
- 自己用java写的计算器源代码(代码注
- JAVA坦克大战游戏源代码
- 用Java编写的扫雷游戏源代码
- 《java程序设计》书附源代码
- 基于JAVA的物业收费管理系统源代码
- java编写的迅雷下载器
- java远程进行telnetftpssh连接的方法及源
-
ba
se64Encode编码,jar包源代码打包 - JavaWeb停车场管理系统(源代码,数据
- 50个java小游戏源代码
- 基于JSP学生成绩管理系统软件的开发
- 安卓平台记账软件源代码JAVA
- 创建桌面快捷方式源代码(android)
- 基于Android的电话号码扫描及条形码扫
- youareanidiot源代码
- 《Java EE企业级应用开发教程Spring+Sp
- JSP+MYSQL校园一卡通系统 源代码
- 《程序员代码面试指南 》左神 高清
- 简易C语言编译器Java源代码
评论
共有 条评论