現在地: Webサービス > Webサービスの利用 > 要求本文へのコンテンツ追加

要求本文へのコンテンツ追加

GET 以外の要求の多くには、要求本文にコンテンツが含まれています。

例えば、要求本文に含める情報として、自身の要求を使って作成した新入社員の詳細があるとします。

一般的に要求本文は単なるバイトのシーケンスです。Web サービスの場合は、通常は特定の詳細をエンコーディングしたテキストです。このテキストは、URL エンコーディングであったり、値のまとまりを JSON で表現したものである場合もあります。

前のセクションでも触れましたが、XPRIM_HttpRequest の Content プロパティには次のメソッドがあり、要求本文に希望のフォーマットのコンテンツを追加できます。

IBM i で AddFile を利用する際は、「制限事項」を参照してください。

例 - Web API を利用して新規の社員作成

会社に新規の社員情報を作成する公開 API があったとしましょう。

この URL は次のようなものになります。

http://yourcompany.com/api/hr/employee

この詳細を要求本文に追加する方法を見ていきます。最初の例では、詳細を URL エンコーディング形式の値として追加する方法が、そして、2 つ目の例では、コンテンツを JSON 文字列として追加する方法が示されています。

社員詳細を URL エンコーディング形式の値として追加

Define_Com Class(#XPRIM_HttpRequest) Name(#Req)

#Req.Content.AddUrlEncodedFormValue Name('givenName') Value(#EmpGivenName)

#Req.Content.AddUrlEncodedFormValue Name('lastName') Value(#EmpLastName)​​

#Req.Content.AddUrlEncodedFormValue Name('address') Value(#EmpAddress)

* 要求の実行 (POST 動詞)

#Req.DoPost Url('http://yourcompany.com/api/hr/employee')

社員詳細を JSON として追加

Define_Com Class(#XPRIM_HttpRequest) Name(#Req)

Define_Com Class(#XPRIM_JsonObject) Name(#JsonObject)

* JSON オブジェクトの構築

#JsonObject.InsertString('givenName' #EmpGivenName)

#JsonObject.InsertString('lastName' #EmpLastName)

#JsonObject.InsertString('address' #EmpAddress)

* 構築した JSON を要求本文に追加

#Req.Content.AddJsonObject(#JsonObject)

* 要求の実行 (POST 動詞)

#Req.DoPost Url('http://yourcompany.com/api/hr/employee')

次は: 要求本文用の JSON データの構築