2017-10-22 9 views
0

でヘッダーを含む要求:私はRailsの中から同じことをしようとすると取得HTTPS GET私は正常に動作し、次のcurlコマンド持つルビー

curl "https://api.multisafepay.com/v1/json/gateways" -X GET -H "api_key: e983177756a109e87aa5edbe05e0xxxxxxxxxxxx" 

は(私はHTTPとし、ファラデーてみました私はいつも取り戻します

"ERROR_INFO \":含む応答

この\ "\無効なAPIキーは、" 私はファラデーのために行うコマンドです。

conn = Faraday.new 'https://api.multisafepay.com/v1/json/' 
conn.headers = {'api_key' => 'e983177756a109e87aa5edbe05e0xxxxxxxxxxxx'} 
conn.get 'gateways' 

正しい結果セットを与えるCurlコマンドの違いは何ですか?

編集:

def run_request(method, url, body, headers) 

ヘッダがnilです:ファラデーへのデバッグは、この方法であることを私に示して?私はなぜこれが私の検索を続けています。

+0

のようなものを試してみてください。あなたはどこか単純なタイプミスではないと確信していますか? – max

+0

はい100%確実です。私はそれをクエリのparamとしてそれを動作させるには、api_keyを含める。クエリのパラメータとヘッダーの両方を受け入れるのがちょっと奇妙だと分かります...ここでは、クエリのパラメータであるhttps://www.multisafepay.com/developers/の例を見て、ヘッダーに関するAPIのドキュメントを見ています。カールは間違いなくヘッダーを使用しており、そこで動作します。 Curlsがデフォルトでファラデーに設定する必要があるものはありますか? – rept

+1

'conn = Faraday.new( 'https://api.multisafepay.com/v1/json/'、ヘッダー: {'api_key' => 'e983177756a109e87aa5edbe05e0xxxxxxxxxxxx'})'を試してください。私はなぜ 'headers =' setterが動作しないのか分かりませんが。 http_headerパラメータとqueryパラメータの両方を許可することはあまり一般的ではありません。そのドキュメンテーションであることがちょうどうんざりです。 – max

答えて

0

私はファラデーに正しいURLを与えているとは思わない。私は何の違いを見ることができないこの

conn = Faraday.new do |f| 
    f.headers['api_token'] = <yourkey> 
    f.request :url_encoded 
    end 
    resp = conn.get('https://api.multisafepay.com/v1/json/gateways') 
+0

私はこれに関する返答でコンテンツを取得していないようです。私はこれを取り戻している:=>#<ファラデー::レスポンス:0x007fc155d90198 @ on_complete_callbacks = []、@env =#<ファラデー:: Env @メソッド=:@url =# @request =#<ファラデー:: RequestOptions(空)> @request_headers = {"api_token" => "e983177756a109e87aa5edbe05eXXXXXXXXXX"、 "ユーザーエージェント" => "ファラデーv0.9.1 "} @ssl =#<ファラデー:: SSLOptions(空)>>> – rept

+0

resp.bodyは何を返しますか? – colincr

+0

resp.body returns nil – rept

0
require 'rest-client' 
    require 'json' 

    response = RestClient.get("https://api.multisafepay.com/v1/json/gateways", 
    {'api_key' => 'e983177756a109e87aa5edbe05e0xxxxxxxxxxxx'} 
) 

    puts JSON.parse(response, { symbolize_names: true }) 

    #just in case try this one for header 
    #{:content_type => :json, :accept => :json, :api_key => 'e983177756a109e87aa5edbe05e0xxxxxxxxxxxx'} 
+0

私はこれを試しましたが、ファラデーと同じ結果を得ました: "error_info": "Invalid API key"。信じられないほど...私はもう一度チェックして、それは仕事をするカールの全く同じキーです。私も余分なjsonパラメータで試しました。 – rept

+0

uは両方を試しましたか?最後のサンプルヘッダー – 7urkm3n

+0

うん、私の最後のコメントを参照してください:私はまた、余分なjsonパラメータで試してみました。私はmultisafepayにメールを送ったが、多分彼らはこれについていくつかの光を当てることができる。私はそれが何を引き起こしているのか非常に不思議ではあるが、クエリのパラメータで完全に機能している。 – rept

関連する問題