精华内容
下载资源
问答
  • 前言:这两天在整WebApi的服务,由于调用方是Android客户端,Android开发人员也不懂C#语法,API里面的接口也不能直接给他们看,没办法,只有整个详细一点的文档呗。由于接口个数有点多,每个接口都要详细说明接口...

    前言:这两天在整WebApi的服务,由于调用方是Android客户端,Android开发人员也不懂C#语法,API里面的接口也不能直接给他们看,没办法,只有整个详细一点的文档呗。由于接口个数有点多,每个接口都要详细说明接口作用、参数类型、返回值类型等等,写着写着把博主惹毛了,难道这种文档非要自己写不成?难道网上没有这种文档的展示工具吗?带着这两个问题,在网络世界里寻找,网络世界很奇妙,只要你用心,总能找到或多或少的帮助!这不就被博主找到了这个好用的组件:WebApiTestClient。它对于接口的作用、参数作用以及类型、返回值说明等等都能很好展现,并且提供测试调用的功能,输入测试参数发送请求,就能得到相应的返回结果。哇塞,这一系列可视化的效果不正是博主需要的吗,还写什么文档,赶紧用起来!

    一、WebApiTestClient介绍

    1、WebApiTestClient组件作用主要有以下几个:

    (1)、将WebApi的接口放到了浏览器里面,以可视化的方式展现出来,比如我们通过http://localhost:8080/Help这个地址就能在浏览器里面看到这个服务里面所有的API接口以及接口的详细说明,省去了我们手写接口文档的麻烦。

    (2)、能够详细查看API的类说明、方法说明、参数说明、返回值说明。只需要我们在定义方法时候加上 /// 这种详细注释即可,组件自动读取注释里面的内容展现在界面上面。

    (3)、可以修改http请求头文件Head和请求体Body里面的参数,指定发送http请求的特性,比如指定我们最常见的contentType指示参数的类型。

    (4)、组件拥有测试接口的功能,用过Soup UI的朋友应该知道,通过Soup UI能够方便测试WebService参数以及返回值。我们的WebApiTestClient也可以实现类似的功能,直接通过页面上的测试按钮,就能测试接口。

    二、WebApiTestClient展示

    第一印象:接口列表。

    6b7356ce8b5f42c88df3c8090338e7f4.png

    点击某一个接口查看接口详细。例如本文查看Get请求的无参方法,右下角有按钮可以测试接口。

    810d07b018f7dfc1feb789304b430e4c.png

    点击“Test API”按钮

    0c129915185172eeeeaee2efb075fd6a.png

    点击Send发送请求

    526e5260b87709517769854ab781ab8f.png

    第二个有参数的接口

    daebf27ce53005528231c3ae9ca7b1f5.png

    手动输入参数,得到返回结果

    84cac36a70543d397465f7d1aef38627.png

    如果参数的类型是对象,可以直接解析class定义上面的 /// 显示如下

    5008d2933880e87b3b041bfd4cbf40bf.png

    由于是post请求,如果需要执行参数长度和类型,可以通过content-length和content-type来指定。并且具体的参数可以指定不同格式显示,比如下图的application/json和application/xml

    628d342253985dd641bc96a34c1d3740.png

    6aecadb4a7328cbca0147196cc3a198c.png

    得到返回值

    c606d420e42afb1fd6a2c55b2e026f74.png

    三、WebApiTestClient使用

    1、如何引入组件

    首先,我们需要定义一个API项目

    d1e65db8fa25358e228d65bda104f4bf.png

    然后通过Nuget引入组件,如下图。记住选下图中的第三个。

    ad32e04e48749bc5a37e7fcba81a5457.png

    引入成功后,将向项目里面添加一些主要文件:

    Scripts\WebApiTestClient.js

    Areas\HelpPage\TestClient.css

    Areas\HelpPage\Views\Help\DisplayTemplates\TestClientDialogs.cshtml

    Areas\HelpPage\Views\Help\DisplayTemplates\TestClientReferences.cshtml

    2、如何使用组件

    1、修改Api.cshtml文件

    通过上述步骤,就能将组件WebAPITestClient引入进来。下面我们只需要做一件事:打开文件 (根据 Areas\HelpPage\Views\Help) Api.cshtml 并添加以下内容:

    @Html.DisplayForModel("TestClientDialogs")

    @Html.DisplayForModel("TestClientReferences")

    添加后Api.cshtml文件的代码如下

    @using System.Web.Http

    @using WebApiTestClient.Areas.HelpPage.Models

    @model HelpPageApiModel

    @{

    var description = Model.ApiDescription;

    ViewBag.Title = description.HttpMethod.Method + " " + description.RelativePath;

    }

    @Html.ActionLink("Help Page Home", "Index")

    展开全文
  • java如何通过httpclient 调用采用https方式的webapi?如何验证证书。示例:https://devdata.osisoft.com/p...需要通过httpclient调用接口,没有做过https 方式的调用不知道怎么解决。 ...

    java如何通过httpclient 调用采用https方式的webapi?如何验证证书。
    示例:https://devdata.osisoft.com/p...
    需要通过httpclient调用该接口,没有做过https 方式的调用不知道怎么解决。


    java 通过httpclient调用https 的webapi >> csharp

    这个答案描述的挺清楚的:
    http://www.goodpm.net/postreply/csharp/1010000008927916/java通过httpclient调用https的webapi.html

    转载于:https://www.cnblogs.com/scrumme/p/7135926.html

    展开全文
  • 最近需要在一个WEB项目中集成GitLab,用到了GitLab的API操作,在网上找了很久都是说直接调用GitLab的Http接口,而且API官方只有javadoc没有其它说明文档,特别记录下,以备查询。这里采用Token的认证方式,因此需要...

    最近需要在一个WEB项目中集成GitLab,用到了GitLab的API操作,在网上找了很久都是说直接调用GitLab的Http接口,而且API官方只有javadoc没有其它说明文档,特别记录下,以备查询。这里采用Token的认证方式,因此需要先登陆GitLab新建一个Token,创建方式如下:

    2c400ac9d3e2bbb1bf3183217a192233.png

    GitLab创建Token认证登陆

    创建完成以后,就可以在API中通过Token进行登陆并操作该GitLab服务了,以下是源码

    package org.noka.gitlab.gitlab.service;import org.apache.commons.codec.binary.Base64;import org.gitlab.api.GitlabAPI;import org.gitlab.api.models.GitlabBranch;import org.gitlab.api.models.GitlabProject;import org.gitlab.api.models.GitlabRepositoryFile;import org.gitlab.api.models.GitlabSimpleRepositoryFile;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Service;import org.springframework.web.multipart.MultipartFile;import java.util.List;/** ------------------------------------------------------------ * GitLab 操作服务 * 包含分支创建,获取分支列表,上传文件,下载文件 * 依赖于java-gitlab-api 4.1.1 * @author  xiefangjian@163.com * @version 1.0.0 ** ---------------------------------------------------------**/@Servicepublic class GitLabService {    private static Logger logger = LoggerFactory.getLogger(GitLabService.class);    @Value("${gitlab.token}")    private String token;           //GitLab Token,这里用gitlab的token连接,也可以用用户名和密码连接    @Value("${gitlab.url}")    private String url;             //GitLab 服务器地址    @Value("${gitlab.projectid}")    private String projectid;       //项目ID    /**     * 创建分支     * @param name 新分支的名称     * @param ref  分支来源     * @return 分支创建成功返回true,创建失败返回false     */    public boolean createBaranche(String name,String ref){        try {            GitlabAPI api = GitlabAPI.connect(url, token);//连接服务器            api.setConnectionTimeout(200);//设置连接超时            GitlabProject gp = api.getProject(projectid);//根据项目ID切换到指定项目的仓库            //以上部分代码也可以在spring中通过注解引入            api.createBranch(gp,name,ref);//在指定项目下创建分支            return true;//创建成功        }catch (Exception ex){            logger.error(ex.getMessage());        }        return false;//创建失败    }    /**     * 获取分支列表     * @return 成功时返回分支列表,失败返回null     */    public List getListBranches(){        try {            GitlabAPI api = GitlabAPI.connect(url, token);//连接服务器            api.setConnectionTimeout(200);//设置连接超时            GitlabProject gp = api.getProject(projectid);//根据项目ID切换到指定项目的仓库            return api.getBranches(gp);//获取所有分支        }catch (Exception ex){            logger.error(ex.getMessage());        }        return null;//获取失败时返回null    }    /**     * 下载文件     * @param path 文件路径     * @param ref  文件所在分支     * @return 成功返回文件内容,失败返回null     */    public byte[] getFile(String path,String ref){        try {            GitlabAPI api = GitlabAPI.connect(url, token);//连接服务器            api.setConnectionTimeout(200);//设置连接超时            GitlabProject gp = api.getProject(projectid);//根据项目ID切换到指定项目的仓库            GitlabRepositoryFile gfile = api.getRepositoryFile(gp,path,ref);//根据项目,路径,分支获取具体的文件内容            Base64 bs = new Base64();//Base64转换工具类,依赖于commons-codec 1.14            return bs.decode(gfile.getContent());//从GitLab上获取的文件是以Base64字符串形式返回的,需要转成byte[]        }catch (Exception ex){            logger.error(ex.getMessage());        }        return null;//失败返回null    }    /**     * 上传文件     * @param branch 需要上传到具体哪个分支     * @param path   文件在GitLab上的路径,可以有多级目录如/doc/man/等,如果目录不存在会自动创建     * @param msg    文件上传备注     * @param file   文件对象     * @return 成功返回true 失败返回false     */   public boolean upfile(String branch,String path,String msg,MultipartFile file){       try {           GitlabAPI api = GitlabAPI.connect(url, token);//连接服务器           api.setConnectionTimeout(200);//设置连接超时           GitlabProject gp = api.getProject(projectid);//根据项目ID切换到指定项目的仓库           Base64 bs = new Base64();//Base64转换工具类,依赖于commons-codec 1.14           String body = bs.encodeAsString(file.getBytes());//文件内容,GitLab只接受Base64字符串的文件内容,这里需要将文件转换成Base64字符串上传           try {               GitlabSimpleRepositoryFile gf = api.createRepositoryFile(gp, path+"/" + file.getOriginalFilename(), branch, msg, body);//上传文件           }catch (Exception es) {//文件存在               logger.error(path+"/" + file.getOriginalFilename()+"  所传文件已经存在,执行更新操作");               api.updateRepositoryFile(gp, path+"/" + file.getOriginalFilename(), branch, msg, body);//更新文件           }           return true;//上传成功       }catch (Exception ex){           logger.error(ex.getMessage());       }       return false;//上传失败   }}
    展开全文
  • 展开全部一、e69da5e6ba903231313335323631343130323136353331333339663361利用jdkweb服务api实现,这里使用基于SOAPmessage的Web服务①.首先建立一个WebservicesEndPoint:packageHello;importjavax.jws.WebService...

    展开全部

    一、e69da5e6ba903231313335323631343130323136353331333339663361利用jdk web服务api实现,这里使用基于SOAP message的Web服务①.首先建立一个Web services EndPoint:package Hello;

    import javax.jws.WebService;

    import javax.jws.WebMethod;

    import javax.xml.ws.Endpoint;

    @WebService

    public class Hello {

    @WebMethod

    public String hello(String name) {

    return "Hello, " + name + "\n";

    }

    public static void main(String[] args) {

    // create and publish an endpoint

    Hello hello = new Hello();

    Endpoint endpoint = Endpoint.publish("

    , hello);

    }

    }

    ②.使用apt编译Hello.java(例:apt -d [存放编译后的文件目录] Hello.java ) ,

    会生成jaws目录

    ③.使用java Hello.Hello运行,然后将浏览器指向

    就会出现下列显示

    ④.使用wsimport生成客户端使用如下:

    wsimport -p . -keep

    这时,会在当前目录中生成如下文件:

    ⑤.客户端程序:

    1 class HelloClient{

    2 public static void main(String args[]) {

    3 HelloService service = new HelloService();

    4 Hello helloProxy = service.getHelloPort();

    5 String hello = helloProxy.hello("你好");

    6 System.out.println(hello);

    7 }

    8 }

    以上方法还稍显繁琐,还有更加简单的方法

    二、使用xfire,我这里使用的是myeclipse集成的xfire进行测试的利用xfire开发WebService,可以有三种方法:

    1. 一种是从javabean中生成;

    2. 一种是从wsdl文件中生成;

    3. 还有一种是自己建立webservice

    步骤如下:

    用myeclipse建立webservice工程,目录结构如下:首先建立webservice接口,

    代码如下:1 package com.myeclipse.wsExample;

    2 //Generated by MyEclipse

    3

    4 public interface IHelloWorldService {

    5

    6 public String example(String message);

    7

    8 }

    接着实现这个借口:

    1 package com.myeclipse.wsExample;

    2 //Generated by MyEclipse

    3

    4 public class HelloWorldServiceImpl implements IHelloWorldService {

    5

    6 public String example(String message) {

    7 return message;

    8 }

    9

    10 }

    修改 service.xml文件,加入以下代码:1 

    2 HelloWorldService

    4 com.myeclipse.wsExample.IHelloWorldService

    7 com.myeclipse.wsExample.HelloWorldServiceImpl

    9 wrapped

    10 literal

    11 application

    12  

    然后再展开HelloWorldService后面的wsdl可以看到:

    客户端实现如下:1 package com.myeclipse.wsExample.client;

    2

    3 import java.net.MalformedURLException;

    4 import java.net.URL;

    5

    6 import org.codehaus.xfire.XFireFactory;

    7 import org.codehaus.xfire.client.Client;

    8 import org.codehaus.xfire.client.XFireProxyFactory;

    9 import org.codehaus.xfire.service.Service;

    10 import org.codehaus.xfire.service.binding.ObjectServiceFactory;

    11

    12 import com.myeclipse.wsExample.IHelloWorldService;

    13

    14 public class HelloWorldClient {

    15 public static void main(String[] args) throws MalformedURLException, Exception {

    16 // TODO Auto-generated method stub

    17 Service s=new ObjectServiceFactory().create(IHelloWorldService.class);

    18 XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());

    19 String url="

    20

    21 try

    22 {

    23

    24 IHelloWorldService hs=(IHelloWorldService) xf.create(s,url);

    25 String st=hs.example("zhangjin");

    26 System.out.print(st);

    27 }

    28 catch(Exception e)

    29 {

    30 e.printStackTrace();

    31 }

    32 }

    33

    34 }

    有时候我们知道一个wsdl地址,比如想用java客户端引用net做得webservice,使用myeclipse引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下:1. public static void main(String[] args) throws MalformedURLException, Exception {

    2. // TODO Auto-generated method stub

    展开全文
  • at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158) at org.springframework.security.web....
  • 第一次开发网站,使用的是J2EE中的Struts2和hibernate技术,需要实现一个短线验证,现在已经在阿里大于平台弄好了签名名称和短线模块,已经创建有应用了,只是不知道在web工程怎么调用,网站给的dome,api开发文档...
  • 下面是我的wsdl内容: ``` ...测试调用是报的错误如下: ... at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:292) ...网上翻遍我还是不知道怎么解决这个问题,紧急求助!!
  • 如果支持我们需要和他们拿到他们底层的jar包和api(接口文档),要是有demo就更好了。 下面分享一下我实现的过程: 一:实现思路 1:和硬件的研发沟通好,拿到jar 因为需要动态库,会使用到dll,这个研发也会给我们,...
  • 前言:Spire.Cloud 在线编辑器是一款基于网页的 Office 文件编辑工具,支持在网页中打开、编辑、打印 ...Spire.Cloud Web API 能帮助开发人员能在任何时间、任何地点直接调用 SDK 接口对 Word、Excel、PPT、PDF 文...
  • java面试题典 java 面试题 经典

    热门讨论 2010-06-18 13:42:36
    10. JAVA SERVLET API中forward() 与redirect()的区别? 29 11. Class.forName的作用?为什么要用? 29 12. 说出在JSP页面里是怎么分页的? 29 13. 简述你对简单Servlet、过滤器、监听器的理解 30 14. servlet的生命...
  • java面试宝典

    2013-02-28 16:04:01
    174、JAVA SERVLET API中forward() 与redirect()的区别? 42 178、如何现实servlet的单线程模式 42 179、页面间对象传递的方法 42 180、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 42 181、四种会话...
  • java 面试题 总结

    2009-09-16 08:45:34
    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...
  • 基于hadoop的Hive数据仓库JavaAPI简单调用的实例,关于Hive的简介在此不赘述。hive提供了三种用户接口:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行 JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似 Web...
  • 一个方法里面既有数据库操作也有外部 API 接口调用,事务超时时间如何考虑? 开发手册怎么和 checkstyle 结合起来用? 有没有相关文档提供下? 支付和渠道风控的架构是什么? 当前内容版权归码字科技所有并授权显示...
  • Java面试宝典2010版

    2011-06-27 09:48:27
    Java web部分 1、Tomcat的优化经验 2、HTTP请求的GET与POST方式的区别 3、解释一下什么是servlet; 4、说一说Servlet的生命周期? 5、Servlet的基本架构 6、SERVLET API中forward() 与redirect()的区别? 86 7...
  • 最新Java面试宝典pdf版

    热门讨论 2011-08-31 11:29:22
    Java web部分 85 1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的...
  • Java 面试宝典

    2013-02-01 10:02:08
    Java 基础部分..................................................................................................................... 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么...
  • 无论实现怎么改,方法的签名是不用变的,始终返回的都是一个<code>Observable。 关于响应式的概念这里就不多做介绍了,我觉得上手还是有点难度,个人更倾向于coroutine的方案。 <pre>...
  • Java web部分 85 1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的...
  • WEB项目基于ADFS做了SSO,借助与Spring security saml 1.0.4 完成的配置,配置完成后,发现WEB项目发布的API接口,别的系统却无法调成功,分析原因应该是接口请求也被SSO拦截了,如何配置spring的拦截排除系统发布的...
  • JSP第七篇【简单标签、应用、DynamicAttribute接口】 JSP面试题都在这里 :microscope:监听器和过滤器 过滤器和监听器总结 过滤器第一篇【介绍、入门、简单应用】 过滤器第二篇【编码、敏感词、压缩、转义过滤器】...
  • JSP程序设计从入门到精通.pdf

    千次下载 热门讨论 2011-04-13 13:13:58
    1.1.1 日新月异的Web技术 7 1.1.2 什么是JSP 8 1.1.3 JSP技术有以下几个显著的优点 9 1.1.4 JSP和其他类似或相关技术的一个简单比较 10 1.2 JSP环境安装配置 12 1.2.1Tomcat下JSP环境的配置 12 1.2.1建立自己的Jsp...
  • 千方百计笔试题大全

    2011-11-30 21:58:33
    174、JAVA SERVLET API中forward() 与redirect()的区别? 42 178、如何现实servlet的单线程模式 42 179、页面间对象传递的方法 42 180、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 42 181、四种会话...
  • 第07节、使用Nginx搭建企业API接口网关 资料+源码.rar 0032-蚂蚁课堂(每特学院)-2期-Nginx高可用 第01节、分布式与集群区别 第02节、Linux环境下安装nginx 第03节、Keepalived高可用介绍 第04节、使用nginx+...
  • asp.net知识库

    2015-06-18 08:45:45
    泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-extern C#2.0-可空类型 C#2.0-分部类 C#2.0-迭代器 C#2.0 的新增功能学习 泛型的序列化问题 .NET 2.0 ...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
  • Android 上百实例源码分析以及开源分析 集合打包4

    千次下载 热门讨论 2012-07-10 21:54:03
    ApiImpl Api接口 实现了地址查询 身份证查询 手机信息查询 更新信息查询 网络请求的功能 AddressInfo 定义了一个地址信息结构类 AppUpdateInfo定义了一个更新信息结构类 IDCardInfo 定义了一个身份证结构类 ...
  • 谢谢你的解答,但是我还是不明白你的意思,你是指我的Dao中用了内部类吗,你所指的 “调用updateByIds方法 的代码 跳出你的当前类 然后在别的类调用当前了类的接口中的方法updateByIds ”是指什么意思,能不能说明白...

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

java怎么调用webapi接口

java 订阅