`
y806839048
  • 浏览: 1121562 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

rest 应用demo 3 客户端的另一中方式

    博客分类:
  • rest
 
阅读更多
//rest接口访问地址特征
API_IP = http://localhost:8080/mano-vim
HttpClientRequest requestProvider = new HttpClientGetRequest(ConfigFileLoad.getConfContent("API_IP") + "/rest/provider_network_cn");

@Component
@Path("/")
public class ProvidernetRest {
@GET
@Path("provider_network_cn")
@Produces(ContentType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.TEXT_PLAIN)
public Object findProvidercnCount(@HeaderParam("X-Auth-Token") String token)
{
}

}

http://127.0.0.1:8080/mano-vim/rest(这个是要的)/provider_network_cn 

客户端:

@Override
public String findProvidercnCount(String token) throws Exception {

try {
String url = scapeRestRootUrl + "/token_api/ems_exist";
if ((null != token) && (!token.trim().equalsIgnoreCase(""))) {
url = url + "?X-Auth-Token=" + token;
}

String result = new String(HttpsUtil.getMethod(url));
return result;

} catch (Exception ex) {
logger.error("ex:" + ex);
throw ex;
}
};



工具类:


package com.certusnet.nfv.mano.vim;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;


import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;


public class HttpsUtil {


/**
     * 忽视证书HostName
     */
    private static HostnameVerifier ignoreHostnameVerifier = new HostnameVerifier() {
        public boolean verify(String s, SSLSession sslsession) {
            System.out.println("WARNING: Hostname is not matched for cert.");
            return true;
        }
    };

     /**
     * Ignore Certification
     */
    private static TrustManager ignoreCertificationTrustManger = new X509TrustManager() {

        private X509Certificate[] certificates;

        @Override
        public void checkClientTrusted(X509Certificate certificates[],
                String authType) throws CertificateException {
            if (this.certificates == null) {
                this.certificates = certificates;
                System.out.println("init at checkClientTrusted");
            }
        }


        @Override
        public void checkServerTrusted(X509Certificate[] ax509certificate,
                String s) throws CertificateException {
            if (this.certificates == null) {
                this.certificates = ax509certificate;
                System.out.println("init at checkServerTrusted");
            }

        }


        @Override
        public X509Certificate[] getAcceptedIssuers() {
            // TODO Auto-generated method stub
            return null;
        }
    };


    public static String getMethod(String urlString) {

        ByteArrayOutputStream buffer = new ByteArrayOutputStream(512);
        try {
            URL url = new URL(urlString);
            /*
             * use ignore host name verifier
             */
            HttpsURLConnection.setDefaultHostnameVerifier(ignoreHostnameVerifier);
            HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();


            // Prepare SSL Context
            TrustManager[] tm = { ignoreCertificationTrustManger };
            SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
            sslContext.init(null, tm, new java.security.SecureRandom());


            // 从上述SSLContext对象中得到SSLSocketFactory对象
            SSLSocketFactory ssf = sslContext.getSocketFactory();
            connection.setSSLSocketFactory(ssf);
           
            InputStream reader = connection.getInputStream();
            byte[] bytes = new byte[512];
            int length = reader.read(bytes);


            do {
                buffer.write(bytes, 0, length);
                length = reader.read(bytes);
            } while (length > 0);


            // result.setResponseData(bytes);
            System.out.println(buffer.toString());
            reader.close();
           
            connection.disconnect();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
        }
        String repString= new String (buffer.toByteArray());
        return repString;
    }


    public static void main(String[] args) {
    String urlString = "https://172.16.67.192/vm_api/list";
         String output = new String(HttpsUtil.getMethod(urlString));
        //System.out.println(output);
    }
}
分享到:
评论

相关推荐

    基于REST的Web服务客户端.rar

    REST(Representational State Transfer,表述性状态转移)是一种网络应用程序的设计风格和开发方式,主要用于构建Web服务。在RESTful架构中,资源是核心概念,通过HTTP协议中的方法(GET、POST、PUT、DELETE等)...

    openshift-java-client, OpenShift REST API的Java客户端.zip

    openshift-java-client, OpenShift REST API的Java客户端 OpenShift客户端 OpenShift REST API的Java客户端。 它几乎提供了 rhc-* 命令行 工具( 。创建/重命名域,创建/销毁应用程序,列出应用程序,列出可用墨盒,...

    appsly-android-rest, 基于rest的Web服务 客户端库.zip

    appsly-android-rest, 基于rest的Web服务 客户端库 这里项目已经停止- 使用你自己的风险这是一个有趣而伟大的项目,但现在是我们继续前进的时候了。 查看我们最近在Android上使用 Scala 做的工作。 在Github和我们...

    基于REST的Web服务客户端

    基于REST的Web服务客户端是一款可以模拟REST客户端向REST服务器端发送请求的Chrome插件,在Chrome中安装了基于REST的Web服务客户端插件以后,用户就可以在REST服务器端开发完成后,提前使用基于REST的Web服务客户端...

    REST api demo

    REST API(Representational State Transfer,表述性状态转移)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,用于分布式系统间的通信。在这个“REST api demo”项目中,我们看到使用了nginx作为Web服务器...

    rest webservice demo spring

    REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,可以使用XML或者JSON格式传输数据。Web服务则是通过网络提供服务的应用,RESTful Web服务是这种服务的一种实现方式...

    Jquery+JSON+REST WCF DEMO

    "Jquery+JSON+REST WCF DEMO"是一个演示项目,它结合了这些技术,以实现高效、灵活的客户端-服务器通信。下面将详细讲解这些技术及其在项目中的应用。 **1. jQuery** jQuery是一个轻量级的JavaScript库,简化了HTML...

    基于dubbo的rest注册demo

    REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,它基于HTTP协议,使得API更加简洁、易用。将REST与Dubbo结合,可以实现更灵活、更易于集成的服务调用方式。本示例是关于如何在...

    关于rest接口demo的详解

    关于 REST 接口 Demo 的详解 本节主要介绍了 MetaOne 平台 Webservice 接口第 I 条元数据服务接口规范要求元数据管理模块需要采用数据封装的机制对外提供一系列查询和操作的服务接口,将元数据信息和操作封装为标准...

    spring mvc rest基础学习demo

    REST(Representational State Transfer,表现层状态转移)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以JSON或XML格式交换数据。Spring MVC 提供了对REST的支持,使得开发REST服务变得简单。 1. **...

    Chrome基于REST的Web服务客户端插件.zip

    REST(Representational State Transfer)是一种架构风格,广泛应用于现代Web服务设计中,它强调简洁、无状态和缓存等原则,以提高网络应用程序的效率和可伸缩性。 这款插件的核心功能是提供一个直观的界面,让用户...

    Chrome基于REST的Web服务客户端插件

    Chrome基于REST的Web服务客户端插件是一款非常实用的开发者工具,尤其对于那些频繁与RESTful API打交道的IT专业人员来说,它提供了一种方便、快捷的方式来测试和调试接口。REST(Representational State Transfer)...

    CCP_REST_DEMO_PHP_v2.7r.zip_Ccp rest 请求_DEMO_breathl77_php短信验证码通

    1、使用Rest SDK及Demo需要先获得帐号及应用信息,并使用这些信息完成SDK初始化操作, 主帐号可以从开发者控制台获取,应用ID和子帐号可以使用测试Demo应用及其配套的子帐号, 也可以自建应用及子帐号。 2、测试...

    rest_demo.zip

    REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,常用于构建Web服务。 【描述】中的关键点表明,这个项目采用了以下技术栈: 1. **Spring Boot**:这是一个由Pivotal团队提供的...

    Android studio客户端连接 Delphi XE REST DataSnap服务器

    在本文中,我们将深入探讨如何使用Android Studio开发客户端应用程序,以连接到运行在Delphi XE上的REST DataSnap服务器。REST(Representational State Transfer)是一种轻量级的、基于HTTP的架构风格,常用于...

    rest, Doctrine REST服务器和客户端库.zip

    rest, Doctrine REST服务器和客户端库 :这里项目不维护 Doctrine REST服务器和客户端Doctrine REST服务器和客户端组件都是为你的Doctrine 2实体定制REST服务,以及通过类似于 Rails 中的ActiveResource的ActiveReco

    Android推送 利用REST API实现从客户端推送(百度云推送)

    本文将深入探讨如何利用REST API实现从客户端进行Android推送,特别关注百度云推送这一服务。首先,我们需要了解REST(Representational State Transfer)架构风格,它是一种通过HTTP协议进行数据交互的方式,简洁且...

    接口实现客户端demo

    在这个“接口实现客户端demo”中,我们可以推测这是一个关于如何在客户端应用中使用接口来获取或发送数据的示例。通过提供的链接(已省略,因为无法直接访问),开发者ZXW136511485详细解释了如何实现这个过程。这个...

    C# 一个简单的 Restful 服务端和 Restful 客户端 Demo

    这个C#的RESTful服务端和客户端Demo,旨在帮助开发者快速理解和实践RESTful API的设计和实现,是学习和开发相关应用的良好起点。通过实际操作和修改这个Demo,你可以更深入地了解RESTful架构的精髓以及C#在Web服务...

    SPRING-MVC-MQ-CXF-REST_Demo

    "SPRING-MVC-MQ-CXF-REST_Demo"这个项目很可能是用来演示如何在同一个应用中整合Spring MVC、MQ、CXF和REST技术。项目可能包含了以下部分: 1. Spring MVC配置:展示了如何设置DispatcherServlet、视图解析器以及...

Global site tag (gtag.js) - Google Analytics