linux 调用rest接口,REST调用

1. 概述

与SOAP相比,REST WebService简化了调用,也降低了技能要求。

REST 近年来已经成为最主要的 Web 服务设计模式。 事实上,REST 对 Web 的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。

您可以不用知道REST是什么,按照我们的手册发起HTTP请求即可,只需遵从以下的基本原则

1 REST用URL来描述资源,如人员、部门、协同、公文。

2 使用HTTP协议的GET、POST、PUT和DELETE来描述资源的获取、创建、修改和删除。

请注意,所有的REST服务都必须传递通过验证服务获取的token,以下不再赘述。

1.1. 启用RESTFul web service

协同安装完成以后是不能直接使用RESTFul web service的,需要系统管理员登录系统,在信息集成配置 → REST用户管理模块中添加REST用户并启用该用户即可。

系统管理员创建REST用户后需要对REST用户进行资源授权,REST用户只能访问已经授权的资源。

f9ae3300dd413e2087c17c524f65d5ed.png

1.2. 配置开发环境

启动服务,查看RESTFull web service服务的WADL:

http://ip:port/seeyon/rest/application.wadl

例如:http://127.0.0.1:8080/seeyon/rest/application.wadl

1.3. 验证服务

使用创建的REST用户访问RESTFul web service时首先要进行身份验证获取token,所有服务都必须提供合法的令牌ID方可调用。

为保证安全,验证服务必须使用POST方式,用户名和密码使用请求Body以JSON格式发送。

接口调用请求说明

http请求方式:POST

http://ip:port/seeyon/rest/token

原始的HTTP请求如下所示

POST http://127.0.0.1/seeyon/rest/token HTTP/1.1

Host: 127.0.0.1

Accept: application/json

Content-Type: application/json

{"userName":"rest","password":"123456"}

请求实例:

http://IP:port/seeyon/rest/token/{restusername}/{password}

参数说明

参数

是否必须

说明

userName

REST用户登录名

password

REST用户密码

返回说明

成功返回JSON字符串,失败返回-1。

成功:

{"id": "013a2a1e-a0b0-4f66-b533-da0563f89c6c"}

失败:

{"id": "-1"}

1.3.1. 验证服务增加设置当前登录人员(Since:V6.0)

验证服务服务接口可以绑定设置当前OA登录人员。

接口调用请求说明:

请求示例:

http://ip:port/seeyon/rest/token/{restusername}/{password}?loginName={loginName}

http://ip:port/seeyon/rest/token/{restusername}/{password}?memberCode={memberCode}

参数说明

参数

是否必须

说明

userName

REST用户登录名

password

REST用户密码

loginName

OA用户登录名

memberCode

OA用户编码,since 7.1

7.1之前loginName为必填;7.1之后loginName与memberCode任选一个参数即可。

返回说明

成功返回JSON字符串,失败返回 :找不到页面

成功:

{"bindingUser":"..."

"id": "013a2a1e-a0b0-4f66-b533-da0563f89c6c"}

失败:

{"id": "-1"}

1.4. 获取Token是否校验绑定IP(Since:V5.6)

新建REST 帐号时,通过是否勾选【获取Token是否校验IP】来设置在获取Token时,是否对当前请求的IP做校验。

abf586b365f3bee1eaa9c808a569a7d3.png

参数说明

参数

是否勾选

说明

获取token是否校验绑定IP

勾选

获取token时校验IP,如果与【绑定IP】设置不同,无法获取token

获取token是否校验绑定IP

不勾选

不对请求IP做校验

1.5. 传递Token

除了验证服务,所有的REST调用时必须传递Token,如果不传递Token或传递错误的Token,将返回HttpStatus.SC_UNAUTHORIZED401错误及错误信息。

Token的生命周期为15分钟,如果15分钟无调用,Token将失效,失效以后调用返回401,提示“Invalid token,please authenticate again”。

Token的传递方式有两种:

1 在HTTP请求的header中,使用token属性

GET http://127.0.0.1/seeyon/rest/xxx HTTP/1.1

Host: 127.0.0.1

Accept: application/json

Content-Type: application/json;charset=UTF-8

User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36

Cookie: JSESSIONID=5079B8DC8A4BD52E48FBA4DE78C2A43C

token:xxxxxxx

2 在请求参数中传递,如

http://127.0.0.1/seeyon/rest/orgMember/123?token=xxxxxxx

如果您使用的是我们的客户端,调用client.authenticate(userName, password);即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习(86):Interage方法compareto,parseint,intvalue

public class test22 {public static void main(String[] args){int num5;Integer obj1new Integer(num);System.out.println("obj1的值为"obj1);Integer obj2100;System.out.println("obj2的值为"obj2);Integer obj3new Integer("-789");System…

JAVA四则运算(读写文件)

完成时间:17:10 package 四则运算试题;import java.io.BufferedReader; import java.io.PrintStream; import java.util.Scanner; import java.io.FileReader; import java.io.IOException; public class jisuanti {public static void main(String[] ar…

java学习(87):Interage包装类进制转换

public class test22 {public static void main(String[] args){int num5;Integer obj1new Integer(num);System.out.println("obj1的值为"obj1);Integer obj2100;System.out.println("obj2的值为"obj2);Integer obj3new Integer("-789");System…

java学习(88):Charactor包装类

//Character包装类 public class test23 {public static void main(String[] args){char chA;//使用构造方法Character obj1new Character(中);//使用静态方法Character obj2Character.valueOf(ch);//获取char值char zhongobj1.charValue();System.out.println(zhong);int reso…

【Java】 剑指offer(67) 把字符串转换成整数

本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不能使用atoi或者其他类似的库函数。 思路 题目很简单,主要就…

java学习(89):Charactor包装类统计

//Character方法数量统计 public class test24 {public static void main(String[] args) {char ch A;//使用构造方法Character obj1 new Character(中);//使用静态方法Character obj2 Character.valueOf(ch);char[] arr {5, A, a, C, D, U, 5, 9, ,J,9};countChar(arr);}p…

java学习(90):Character方法大小写转换

//Character方法大小写转换 public class test25 {public static void main(String[] args) {char ch A;//使用构造方法Character obj1 new Character(中);//使用静态方法Character obj2 Character.valueOf(ch);char[] arr {5, A, a, C, D, U, 5, 9, ,J,9};//countChar(arr…

c语言实现socket转json,C++解析JSON进行网络传输--一个通过JSON方式的socket传输

1、客户端:#include "json//json.h"#include #pragma comment(lib, "WS2_32.lib")#pragma comment(lib, "json_vc71_libmtd.lib")int main(){Json::Value val;Json::StyledWriter style_write;val["name"] "xiaoli&q…

《linux就该这么学》第六节,计划任务和用户身份管理!

课本笔记: case条件测试语句 4.4:计划任务服务 at 设置一次性计划任务 at 时间 //设置执行的任务 at -l或atq // 查看设置好但未执行的任务 ctrld 保存at计划任务 ctrlc取消at计划任务 atrm 任务序号…

java学习(91):System类

//System类 import java.util.Date; import java.util.Properties; public class test26 {public static void main(String[] args){testOut(-1);//获取系统时间long sysTimeSystem.currentTimeMillis();System.out.println(sysTime);Date datenew Date();System.out.println(d…

c语言 用一维数组存储二叉树,用一维数组存储二叉树时,总是以前序遍历顺序存储结点。( ? )...

用前模式包括献不治疗的积人本哪项以下极贡。维数包括学校工作的过程和方面以下技术几个社区。组存总题大括:致包青少区问年社。可能在含工气体含有有或井施,备合格的个人和相防护应配用具应(。部件理液更换切断或修液压压钳应先。特殊须提劳动理情况前解…

Servlet 文件上传

Servlet 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器。上传的文件可以是文本文件或图像文件或任何文档。 本文使用到的文件有: 创建一个文件上传表单 下面的 HTML 代码创建了一个文件上传表单。以下几点需要注意: 表单 method…

java学习(92):线程的创建方法一

//线程的创建方法1class Xc extends Thread {public void run(){for (int i0;i<20;i){System.out.println("我是歌谣");}} } public class test27{public static void main(String[] args){Xc xcnew Xc();xc.start();//程序会自动调用run方法for (int i0;i<20;…

java学习(93):线程的创建方法二

//创建线程的第二种方法class Xc2 implements Runnable {public void run(){for (int i0;i<20;i){System.out.println("我是歌谣");}} } public class test28{public static void main(String[] args){Xc2 xc2new Xc2();Thread anew Thread(xc2);a.start();//xc.s…

Pycharm使用之设置代码字体大小和颜色主题

1. File->Setting 打开如下所示的对话框&#xff0c;可以在Editor->General->Font下设置字体大小&#xff08;Size&#xff09;、行距&#xff08;Line spacing&#xff09; 2. Editor->Color Scheme 展开如下所示内容&#xff0c;可以选择自己喜欢的主题样式&am…

c语言分量的运算符,C语言基础(04-运算符和表达式)

运算符(也叫操作符)&#xff0d;&#xff0d;运算符是一个表示特定的数学或逻辑操作的符号。如号&#xff0c;表示了一个相加运算&#xff1b;&&号表示了一个逻辑‘与’的运算。由运算符把需要进行运算的各个量(常量或变量)连接起来组成一个表达式。下面要讲的是标准的…

java学习(94):cpu随机调用线程测试

//创建线程 class Xc3 extends Thread {public void run(){System.out.println("当前线程的名称为"Thread.currentThread().getName());} } public class test29{public static void main(String[] args){Xc3 xc3new Xc3();xc3.setName("线程1");//程序会自…

Linux学习——echo和read命令用法

转载自http://www.runoob.com/linux/linux-comm-read.html http://www.178linux.com/76331 echo命令 本文列举了echo命令的几个常用用法并加以实例说明&#xff0c;以作回顾、参考。 echo命令常用作打印输出字符串&#xff0c;根据echo帮助文件可以获得以下信息&#xff1a; 语…

w ndows 高级索引,软媒原创:为Windows7建立索引,搜索文件更给力

Win7之家(www.win7china.com)&#xff1a;软媒原创&#xff1a;为Windows7建立索引&#xff0c;搜索文件更给力也许你还记得XP时代搜索文件时出现的那只黄色的小狗狗&#xff0c;在Windows7时代&#xff0c;搜索变得更加快捷顺手&#xff0c;搜索栏就在那里&#xff0c;不点不搜…

java学习(95):线程的优先级

public class test30 {public static void main(String[] args){Thread xc11new Thread(new Xc41());Thread xc12new Thread(new Xc42());xc11.setPriority(Thread.NORM_PRIORITY3);//数字越大&#xff0c;优先级越高&#xff0c;默认为5xc11.start();xc12.start();} } class X…