首页 > 代码库 > 分布式计算(五)——RESTful 客户端编程

分布式计算(五)——RESTful 客户端编程

1 写出实验 1 中执行 // Sent HTTP PUT request to update customer info 对应的 curl,与输出结果。

curl -v -H "Content-Type: application/xml"  -d "<?xml version=‘1.0‘?><Customer><name>Mary</name><id>123</id></Customer>"  -X PUT "http://localhost:9000/customerservice/customers"

技术分享

 

 

 

2 简述 问题 1 中对应程序执行的过程。

技术分享

 

 

 

3 实验 1 中,简述 URIResolver 类的作用是什么?

输入的地址字符串转换成带文件类型的URL

 

4 实验 1 中,简述 CachedOutputStream 类的作用是什么?

作为数据的缓冲区,从输入流中读取一定数量的字节,并将其存储在缓冲区中,而不需要循环读取输入源。

 

5 翻译 jersey 文档 5.1. Uniform Interface Constraint 的 5 个目标。

1 简易的,结构要易于理解与维护。和可升级的,耦合度低的。客户端与服务可随着时间不断地升级,需要有向后兼容的能力。

2 每一个资源由URI标识。

3 客户端通过HTTP请求与响应使用一套固定的HTTP方法来与资源进行交互。

4 一个或多个代理可被返回并通过媒体类型被识别。

5 内容可连接到更深入的资源。

 

6 简述实验 2 中官方文档 5.2 提到的 UriBuilder 类的作用。

提供了从不同资源创建URI,修改URI实例的方法。

 

7 阅读实验 3 官方文档,用自己的语言(中文)陈述 Motivation for Reactive Client 。

Reactive方法是一种可以摆脱Java回调地狱的方法,基于数据流概念和通过流来改变执行模型的传播。当Jax-RS请求完成后,数据流中的下一个项目(或用户代码)被声明是延续,完成或者失败。你描述的是接下来该做什么而不是接下来的动作该怎么触发。数据流是可组合的,可以把多个数据流组成一个结果并对其进行操作。

当我们需要处理大量的请求(相互依赖),并且需要把请求组成一个结果时,Reactive编程模式是个不错的选择。

 

8 (!)给出一个可运行的实验程序,包含在作业中。

9 阅读实验 4 官方文档,为什么 Java 写 web 服务必须先声明接口?通常这样的接口必须放在一个独立的 Java 文件中。

定义一系列的公用接口,多子类可实现,便于以后扩展,维护和节约有效的时间,相同接口,但是可有不同实现,互不干扰。

 

10 JAXRSClientFactory 类的作用是什么?

创建代理客户端。

 

11 简述透明代理的作用。

用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。

 

分布式计算(五)——RESTful 客户端编程