Entity
簡(jiǎn)介
用于承載數(shù)據(jù)的實(shí)體,是對(duì)二進(jìn)制數(shù)據(jù)的封裝。
坐標(biāo):com.alibaba.bwif.script.core.Entity。
結(jié)構(gòu)說(shuō)明
屬性 | 類型 | 說(shuō)明 |
blob | byte[] | 原始的二進(jìn)制數(shù)據(jù)。 |
mimeType | String | 使用MIME Type區(qū)分不同格式,例如application/json、text/xml等。引擎會(huì)根據(jù)不同的MIME Type對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行處理。 |
encoding | String | 編碼方式,例如UTF-8。 |
構(gòu)造方式
支持兩種構(gòu)造方式:引擎自動(dòng)或開(kāi)發(fā)人員在流設(shè)計(jì)器中通過(guò)腳本構(gòu)造。
自動(dòng)構(gòu)造:引擎運(yùn)行時(shí)根據(jù)節(jié)點(diǎn)配置構(gòu)造,例如HTTP節(jié)點(diǎn)的輸出消息中,會(huì)根據(jù)對(duì)端接口返回的內(nèi)容構(gòu)造對(duì)應(yīng)MIME Type的Entity。
腳本構(gòu)造,提供以下構(gòu)造方法。
方法 | 說(shuō)明 |
Entity fromBytesValue(byte[] blobValue, String mimeType, String encoding) |
|
Entity fromStringValue(String stringValue, String mimeType, String encoding) |
|
Entity fromObjectValue(Object objectValue, String mimeType, String encoding) |
|
方法列表
方法 | 說(shuō)明 |
String getEncoding() | 獲得當(dāng)前Entity對(duì)象的編碼。 |
String getMimeType() | 獲得當(dāng)前Entity對(duì)象的MIME Type。 |
byte[] getBlob() | 獲得當(dāng)前Entity對(duì)象的原始二進(jìn)制內(nèi)容。 |
Integer getBlobSize() | 獲得當(dāng)前Entity對(duì)象的原始二進(jìn)制字節(jié)長(zhǎng)度。 |
Object getObjectValue() | 根據(jù)MIME Type自動(dòng)將二進(jìn)制內(nèi)容反序列化成Java基礎(chǔ)類型,方便使用。根據(jù)不同的MIME Type,得到不同的Object的類型和結(jié)構(gòu)。 |
String getStringValue() | 將二進(jìn)制內(nèi)容按照Encoding編碼后返回。 |
MIME Type
目前支持的MIME Type包括:
格式 | 支持MIMT Type名稱 |
json | application/json,text/json |
x-www-form-urlencoded | x-www-form-urlencoded |
JSON格式
使用getObjectValue()和fromObjectValue()時(shí),涉及到JSON格式中的類型與腳本中的Object類型的轉(zhuǎn)換關(guān)系,目前引擎支持如下:
JSON的類型 | 腳本中的Object類型 |
number
| 根據(jù)數(shù)字的精度情況,對(duì)應(yīng)Integer、Double、BigDecimal類型 |
boolean
| Boolean |
string
| String |
null
| NullObject |
array
| ArrayList |
object
| HashMap |
如果使用getObjectValue()和fromObjectValue()不能滿足您的需求,建議可考慮使用getStringValue()和fromStringValue()方法、并結(jié)合內(nèi)置的JSON處理工具類對(duì)序列化后的字符串直接進(jìn)行處理。
使用示例
關(guān)于使用getObjectValue()和fromObjectValue()處理JSON格式的數(shù)據(jù),示例請(qǐng)參見(jiàn)快速入門(mén)HTTP API Reply。
x-www-form-urlencoded格式
在使用HTTP節(jié)點(diǎn)調(diào)用API時(shí),如果對(duì)端應(yīng)用要求HTTP Request Body的格式為x-www-form-urlencoded時(shí),則需要使用此種類型的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")
生成的數(shù)據(jù)內(nèi)容為:a=1&b=2&c=%27aa%27&d=%E4%B8%AD%E6%96%87。