序列化變更 - AWS SDK for Java 2.x

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

序列化變更

Java v1.x 和 v2.x 的 SDK 在序列化列表對象以請求參數方面有所不同。

適用於 Java 1.x 的 SDK 不會序列化空列表,而 Java 2.x 的 SDK 將空列表序列化為空參數。

例如,假設SampleOperation具有SampleRequest. SampleRequest接受兩個參數 — 字串類型str1和 List 類型 listParam — 如下列範例所示。

範例 的SampleOperation在 1.x 中
SampleRequest v1Request = new SampleRequest() .withStr1("TestName"); sampleServiceV1Client.sampleOperation(v1Request);

線路層級記錄顯示listParam參數未序列化。

Action=SampleOperation&Version=2011-01-01&str1=TestName
範例 的SampleOperation在 2.x 中
sampleServiceV2Client.sampleOperation(b -> b .str1("TestName"));

線路層級記錄顯示listParam參數已序列化,但沒有任何值。

Action=SampleOperation&Version=2011-01-01&str1=TestName&listParam=