2016-09-24 12 views
-2

私は、authserver APIを使ってアップロードするルビースクリプトからPOSTコールを作成しようとしています。私は運なしで郵便配達からの呼び出しを再現しようと、それは次のようになります。API POSTコールでExcelシートをアップロードする

uri = URI.parse("http://authserver:8080/svc/batchImport/v2/direct/roles") 
request = Net::HTTP::Post.new(uri) 
request["Content-Type"] = 'application/xlsx' 
request["externalTenantId"] = tntid 
request["uid"] = uid 
request.body ={ 
     "file"=> "Roles.xlsx", 
     "importMode"=> "OVERWRITE", 
     "tenantId"=> tntid, 
    }.to_json 
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| 
    http.request(request) 
end 
puts response.code 
puts response.body 

そこで、基本的tntidとuidが呼び出しのヘッダになり、体が下記見つけフォームdata.PleaseになりますエラーIを得る:

500 
{"errorCode":["com.domain.common.exception.DefaultErrorCode","UNEXPECTED_ERROR"],"errorMessage":"Unknown server error occurred.","developerMessage":null,"moreInfo":null} 
+0

どうしたの? –

+0

500エラー、POSTMANと連動しているので、私はrubyのpostmanからの他の呼び出しを翻訳していますが、このアップロードファイルは動作していません。 system()からbash curlを使ってもうまくいくなら、それは素晴らしいだろう。 –

+0

サーバーログにエラーを表示します。 –

答えて

0

% X [カール-s -X POST -H 'UID:#{UID}' -H 'externalTenantId:#{tntid}' -F「ファイル= @#{ロール} '-F' importMode = OVERWRITE '-F' tenantId =#{tntid} 'http://# {iam}:8080/iamsvc/batchImport/v2/direct/roles]

関連する問題