文档

Entity

更新时间:

简介

用于承载数据的实体,是对二进制数据的封装。

坐标:com.alibaba.bwif.script.core.Entity。

结构说明

属性

类型

说明

blob

byte[]

原始的二进制数据。

mimeType

String

使用MIME Type区分不同格式,例如application/json、text/xml等。引擎会根据不同的MIME Type对二进制数据进行处理。

encoding

String

编码方式,例如UTF-8。

构造方式

支持两种构造方式:引擎自动或开发人员在流设计器中通过脚本构造。

自动构造:引擎运行时根据节点配置构造,例如HTTP节点的输出消息中,会根据对端接口返回的内容构造对应MIME Type的Entity。

脚本构造,提供以下构造方法。

方法

说明

Entity fromBytesValue(byte[] blobValue, String mimeType, String encoding)

  • 根据二进制内容构造Entity。构造时不会根据mimeType对二进制内容进行校验,如果格式错误,在使用该Entity时会报错。

  • mimeType详见本文后续章节。

  • encoding目前仅支持UTF-8。

Entity fromStringValue(String stringValue, String mimeType, String encoding)

  • 根据字符串构造Entity,stringValue可以理解为序列化后的内容,如JSON字符串,不同类型的mimeType所支持的格式有所不同。构造时不会根据mimeType对二进制内容进行校验,如果格式错误,在使用该Entity时会报错。

  • mineType详见本文后续章节。

  • encoding目前仅支持UTF-8。

Entity fromObjectValue(Object objectValue, String mimeType, String encoding)

  • 根据对象生成Entity,不同类型的mimeType支持的Object类型有所差异,详见后续章节。构造时会根据mimeType转换成二进制内容,如果格式错误将会报错。

  • encoding目前仅支持UTF-8。

方法列表

方法

说明

String getEncoding()

获得当前Entity对象的编码。

String getMimeType()

获得当前Entity对象的MIME Type。

byte[] getBlob()

获得当前Entity对象的原始二进制内容。

Integer getBlobSize()

获得当前Entity对象的原始二进制字节长度。

Object getObjectValue()

根据MIME Type自动将二进制内容反序列化成Java基础类型,方便使用。根据不同的MIME Type,得到不同的Object的类型和结构。

String getStringValue()

将二进制内容按照Encoding编码后返回。

MIME Type

目前支持的MIME Type包括:

格式

支持MIMT Type名称

json

application/json,text/json

x-www-form-urlencoded

x-www-form-urlencoded

JSON格式

使用getObjectValue()和fromObjectValue()时,涉及到JSON格式中的类型与脚本中的Object类型的转换关系,目前引擎支持如下:

JSON的类型

脚本中的Object类型

number

  • 例如:123,-1.002

根据数字的精度情况,对应Integer、Double、BigDecimal类型

boolean

  • 例如:true

Boolean

string

  • 例如:"abc"

String

null

  • 例如:null

NullObject

array

  • 例如:[]、[1,2,3]

ArrayList

object

  • 例如:{},{"a":1,"b":[1,2,3]}

HashMap

如果使用getObjectValue()和fromObjectValue()不能满足您的需求,建议可考虑使用getStringValue()和fromStringValue()方法、并结合内置的JSON处理工具类对序列化后的字符串直接进行处理。

使用示例

关于使用getObjectValue()和fromObjectValue()处理JSON格式的数据,示例请参见快速入门HTTP API Reply

x-www-form-urlencoded格式

在使用HTTP节点调用API时,如果对端应用要求HTTP Request Body的格式为x-www-form-urlencoded时,则需要使用此种类型的Entity。

在getObjectValue()和fromObjectValue()方法中,支持使用HashMap类型,示例如下:

HashMap<String,Object> m = new HashMap()
m.put("a","1")
m.put("b","2")
m.put("c","'aa'")
m.put("d","中文")
Entity e = Entity.fromObjectValue(m,"application/x-www-form-urlencoded","UTF-8")

生成的数据内容为:a=1&b=2&c=%27aa%27&d=%E4%B8%AD%E6%96%87。

  • 本页导读 (1)
文档反馈