CURL を使用したテスト

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  サーバー API: HTTP、COM/.NET、Java > HTTP インターフェイス > クライアントリクエスト > POST を使用してジョブを開始する >

CURL を使用したテスト

第三者パーティアプリケーション CURL (http://curl.haxx.se/) は POST リクエストをテストするために使用することのできるコマンドライン ユーティリティです。 CURL はリクエスト内で直接使用することのできる、または、参照として使用することのできるリクエストのパート境界を生成しリストするとても役に立つトレースオプションを提供します。

 

XML スキーマに対して XML ファイルが検証されるサンプルのテストシナリオは以下の通りです。 以下が想定されます:

 

以下のコマンドは 検証のために提出されたファイルが存在するフォルダーから実行されます (これによりこれらのファイルに対して簡単な相対的なパスを使用することができます)。Altova XMLSpy アプリケーションがインストールされている場合、このサンプル内で使用されているファイルは、デフォルトで C:\Users\<username>\Documents\Altova\XMLSpy2019\Examples に存在するアプリケーションの Examples フォルダー内にあります。
RaptorXML+XBRL Server はローカルで作動しているか、または、ポート 8087 で作動しています。

 

CURL コマンドラインオプションに関する詳細は、 CURL ヘルプを参照してください。

 

検証コマンドを使用して Windows 上で CURL を呼び出す方法

 

[input: powershell]

\path\to\curl.exe -F 'msg={\"command\": \"xsi\", \"args\":[\"additional-files:///PurchaseOrder.zip%7Czip/ipo.xml\"], \"options\":{}};type=application/json' -F "additional-files=@PurchaseOrder.zip;type=application/octet-stream" http://localhost:8087/v1/queue

 

メモ:powershell 内では、引用内で引用が存在する場合、異なる型の引用符 (一重引用符/二重引用符) が使用される必要があります。

 

 

[input: cmd]

\path\to\curl.exe -F "msg={\"command\": \"xsi\", \"args\":[\"additional-files:///PurchaseOrder.zip%7Czip/ipo.xml\"], \"options\":{}};type=application/json" -F "additional-files=@PurchaseOrder.zip;type=application/octet-stream" http://localhost:8087/v1/queue

 

[output]

{"jobid": "058F9E97-CB95-43EF-AC0A-496CD3AC43A3", "result": "/v1/results/058F9E97-CB95-43EF-AC0A-496CD3AC43A3"}

 

"result" の URL を使用して結果をフェッチする方法

 

[input]

\path\to\curl.exe http://localhost:8087/v1/results/058F9E97-CB95-43EF-AC0A-496CD3AC43A3

 

[output]

{"jobid":"058F9E97-CB95-43EF-AC0A-496CD3AC43A3","state":"OK","error":{},"jobs":[{"file":"additional-files:///PurchaseOrder.zip%7Czip/ipo.xml","jobid":"D4B91CB0-CF03-4D29-B563-B6506E123A06","output":{},"state":"OK","error":{}}]}

 

CURL のトレースオプション

CURL にはサーバーから、および、サーバーへ送信された HTTPトラフィックをトレースしトレースオプション (--trace-ascii) があります。オプションは POST とのジョブを開始するために必要とされているパート境界をリストするため、とても役に立ちます。トレース内に情報を直接的、または、参照として使用してパート境界を作成することができます。下のリストは、上記のコマンドを実行して取得されたトレースを表示しています。

 

Click to expand collapseリスティングのトレース

 

== Info:   Trying ::1...

== Info: Connected to localhost (::1) port 8087 (#0)

=> Send header, 217 bytes (0xd9)

0000: POST /v1/queue HTTP/1.1

0019: Host: localhost:8087

002f: User-Agent: curl/7.42.1

0048: Accept: */*

0055: Content-Length: 2939

006b: Expect: 100-continue

0081: Content-Type: multipart/form-data; boundary=--------------------

00c1: ----d887ed58324015c3

00d7: 

<= Recv header, 23 bytes (0x17)

0000: HTTP/1.1 100 Continue

=> Send data, 393 bytes (0x189)

0000: --------------------------d887ed58324015c3

002c: Content-Disposition: form-data; name="msg"

0058: Content-Type: application/json

0078: 

007a: {"command": "xsi", "args":["additional-files:///PurchaseOrder.zi

00ba: p%7Czip/ipo.xml"], "options":{}}

00dc: --------------------------d887ed58324015c3

0108: Content-Disposition: form-data; name="additional-files"; filenam

0148: e="PurchaseOrder.zip"

015f: Content-Type: application/octet-stream

0187: 

=> Send data, 2498 bytes (0x9c2)

0000: PK........"..6}.c.....M.......ipo.xsd.T.N.@.}N....O 5v.}..S....(

0040:  .JU/...$Y..5{.E......I*...g...Y...\....Z..~......P.A.ct....y.

...

0940: .........."..6]g......l............. .......address.xsdPK.......

0980: ..."..6I..v.................. .......ipo.xmlPK..................

09c0: ..

=> Send data, 48 bytes (0x30)

0000: 

0002: --------------------------d887ed58324015c3--

<= Recv header, 22 bytes (0x16)

0000: HTTP/1.1 201 Created

<= Recv header, 13 bytes (0xd)

0000: Allow: POST

<= Recv header, 32 bytes (0x20)

0000: Content-Type: application/json

<= Recv header, 37 bytes (0x25)

0000: Date: Fri, 24 Jul 2015 16:58:08 GMT

<= Recv header, 24 bytes (0x18)

0000: Server: CherryPy/3.6.0

<= Recv header, 21 bytes (0x15)

0000: Content-Length: 111

<= Recv header, 2 bytes (0x2)

0000: 

<= Recv data, 111 bytes (0x6f)

0000: {"jobid": "058F9E97-CB95-43EF-AC0A-496CD3AC43A3", "result": "/v1

0040: /results/058F9E97-CB95-43EF-AC0A-496CD3AC43A3"}

== Info: Connection #0 to host localhost left intact

 

 

 

メモ:'Content-Disposition: attachment' に加え、 'Content-Disposition: form-data' が有効なことが上記のリストで確認することができます。

 

整形式チェックコマンドを使用して Linux 上で CURL を呼び出す方法

 

/path/to/curl -F 'msg={"command": "wfxml", "args":[]};type=application/json' -F "args=@ipo.xml;type=application/octet-stream" http://localhost:8087/v1/queue

 

/path/to/curl -F 'msg={"command": "wfxml", "args":["additional-files:///ipo.zip%7Czip/ipo.xml"]};type=application/json' -F "additional-files=@ipo.zip;type=application/octet-stream" http://localhost:8087/v1/queue

 


(C) 2019 Altova GmbH