0

http api を要求する必要があります。問題は、すべてのパラメーターが&で区切られている一般的な投稿要求の代わりに、次のようなパラメーターごとにマルチパート要求を期待していることです。

POST /core/eligibility HTTP/1.1 
Host: server_host:server_port 
Content-Length: 2408 
Content-Type: multipart/form-data; boundary=XbCY 
--XbCY 
Content-Disposition: form-data; name=“PayloadType“ 
X12_270_Request_005010X279A1 
--XbCY 
Content-Disposition: form-data; name=“ProcessingMode" 
RealTime 
--XbCY 
Content-Disposition: form-data; name=“PayloadID" 
e51d4fae-7dec-11d0-a765-00a0c91e6da6 
--XbCY 
Content-Disposition: form-data; name=“TimeStamp" 
2007-08-30T10:20:34Z 
--XbCY 
Content-Disposition: form-data; name=“UserName" 
hospa 
--XbCY 
Content-Disposition: form-data; name=“Password" 
8y6dt3dd2 
--XbCY 
Content-Disposition: form-data; name=“SenderID" 
HospitalA 
--XbCY 
Content-Disposition: form-data; name=“ReceiverID" 
PayerB 
--XbCY 
Content-Disposition: form-data; name=“CORERuleVersion" 
2.2.0 
--XbCY 
Content-Disposition: form-data; name=“Payload" 
<contents of file go here -- 1674 bytes long as specified above> 
--XbCY— 

ruby を使用してマルチパート リクエストを送信することについて、良い質問と回答があります。問題は、パラメータごとにファイルを作成する必要があることです。単純な API リクエストに対して 10 個の異なるファイルを作成するのはナンセンスです。

ディスク上にファイルを作成せずに同じことを行う方法はありますか?

4

2 に答える 2

0

ディスク I/O やクラッタが原因でファイルを作成しているなど、問題が何であるかを判断することはできません。

何らかの I/O であれば、通常の IO オブジェクトの代わりに、Ruby の StringIO クラスを使用できるはずです。文字列をバッファとして使用して、すべてがメモリに書き込まれ、読み取られます。

于 2013-04-08T14:51:05.907 に答える
0

はいあります :)

gem rest-clientを見ると、 multipartという素敵なパラメーターがあることがわかりました。 true の場合、すべてのパラメーターが Multipart リクエストのように送信されます。

すなわち:

require 'rest-client'
request_params = {
   CORERuleVersion: "value1",
   PayloadType: "value2",
   ProcessingMode: "value3",
   UserName: "value4",
   Password: "value5",
   SenderID: "value6",
   ReceiverID: "value7",
   PayloadID: "value8",
   TimeStamp: Time.now.utc.iso8601,
   Payload: "long_payload",
   multipart: true
}
RestClient.post("http://www.example.com", request_params)
于 2013-04-08T10:20:44.423 に答える