本篇文章给大家带来的内容是关于浅析nodejs和Java访问远程服务器的服务,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
既然这篇文章用的是nodejs和Java访问远程服务器的服务,那么咱们先用另一门编程语言,SAP的ABAP(我日常工作使用得最多的编程语言)来开发一个服务吧。
这是我用ABAP编程语言实现服务的类:ZCL_DIS_HTTP_HANDLER
这个类实现了一个接口IF_HTTP_EXTENSION里定义的一个方法HANDLE_REQUEST.
大家可以不用被ABAP陌生的语法所迷惑,其实和Java的Servlet是相通的。
我画了张图:
我的这个远程服务很简单,就是无论调用者发送什么,都简单地返回一个文本:HELLO WORLD。
现在我们就分别用nodejs和Java去消费。
nodejs
看下nodejs代码。
下面的代码传入Buffer的WANGJER为我的用户名,123456为密码。使用的登录方式是Basic Authentication。
var request = require('request'); var getTokenOptions = { url: "https://<此处填入您的远程服务器上的服务地址url", method: "GET", headers: { 'Authorization': 'Basic ' + new Buffer("WANGJER:123456").toString('base64') } }; function getToken() { return new Promise(function(resolve,reject){ var requestC = request.defaults({jar: true}); console.time("Remote"); requestC(getTokenOptions,function(error,response,body){ console.log("response body: " + body); console.timeEnd("Remote"); resolve(response); }); }); } getToken().then(function(response) { });
执行结果:算上网络开销总共花了1.4秒。
java
下面代码的WANGJER为我的用户名,123456为密码。使用的登录方式是Basic Authentication。
package connectivity; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.commons.codec.binary.Base64; import java.util.stream.Collectors; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; public class OPSystemConnectivity { static public void main(String[] arg){ final HttpGet get = new HttpGet("https://<您远程服务器的url"); HttpClient httpClient = HttpClientBuilder.create().build(); String raw = "WANGJER:123456"; String encoded = Base64.encodeBase64String(raw.getBytes()); get.setHeader("Authorization", "Basic " + encoded); HttpResponse response; try { long start = System.currentTimeMillis(); response = httpClient.execute(get); InputStream stream = response.getEntity().getContent(); String result = new BufferedReader(new InputStreamReader(stream)).lines() .parallel().collect(Collectors.joining(" ")); System.out.println("response: " + result); stream.close(); long end = System.currentTimeMillis() - start; System.out.println("time consumed: " + end ); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException | UnsupportedOperationException e) { e.printStackTrace(); } } }
执行结果,耗时和nodejs差不多。
注意,用本文介绍的方法不仅能访问远程服务器的服务,也能达到资源下载的目标:比如下载某服务器上的图片,mp3等。只需要把对应资源的url传入系统即可。
以上是浅析nodejs和Java访问远程服务器的服务的详细内容。更多信息请关注PHP中文网其他相关文章!

SAP五大模块是:1、物料管理模块,主要有采购、库房与库存管理、供应商评价等管理功能;2、工厂维护模块,提供对定期维护、检查与服务管理的规划、控制和处理;3、质量管理模块,可提供质量计划、质量检测、质量控制、质量文档等功能;4、销售与分销模块,包括销售计划、询价报价、订单管理、运输发货、发票等的管理;5、生产计划模块,可实现对工厂数据、生产计划、能力计划、成本核算等的管理。

sap是SAP公司的产品,即企业管理解决方案的软件名称;sap的英文全称是“System Applications and Products”,有两层含义:1、表示公司名称,即SAP公司;2、表示其ERP(Enterprise-wide Resource Planning)软件名称。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

sap是一家德国的软件公司,是世界上最大的企业管理软件公司之一,专注于提供企业资源规划和相关软件解决方案。其成立于1972年,总部位于德国沃尔多夫市,最初SAP的主要业务是为德国企业提供财务会计软件。随着公司的不断发展,SAP逐渐扩展了产品线,涵盖了物流、供应链管理、人力资源管理、销售与分销等领域,SAP的软件解决方案仍然是全球企业管理软件市场的领先者之一。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

SAP系统是一种企业资源规划软件解决方案,由德国软件公司SAP SE开发和提供,SAP系统是一套集成的应用程序,旨在帮助企业管理和整合各个方面的业务流程。SAP系统的主要目标是帮助企业实现高效的业务流程管理和资源规划。SAP系统的核心是一个中央数据库,其中存储了企业所有的数据和信息。各个部门和业务功能可以通过SAP系统访问和共享这些数据,从而实现信息的一致性和实时性。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版