简介
用于承载数据的实体,是对二进制数据的封装。
坐标: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 fromStringValue(String stringValue, String mimeType, String encoding) |
|
Entity fromObjectValue(Object objectValue, String mimeType, String encoding) |
|
方法列表
方法 | 说明 |
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
| 根据数字的精度情况,对应Integer、Double、BigDecimal类型 |
boolean
| Boolean |
string
| String |
null
| NullObject |
array
| ArrayList |
object
| 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)