2015-09-16 10 views
8

私はHTTPoisonライブラリを使用してエリクサーで以下のコマンドを実行します。私はurlheader必要がありますどのようにDELETEからHTTPoisonHTTPoisonを使ってElixirでDELETEを実行するには?

def delete!(url, headers \\ [], options \\ []), do: request!(:delete, url, "", headers, options) 

でドキュメントをチェック

$ curl -X DELETE -H "expired: 1442395800" -H "signature: ******************" -d '{"api_key":"***************","delete_path":"*******","expired":"****"}' https://cdn.idcfcloud.com/api/v0/caches 
{"status":"success","messages":"We accept the cache deleted successfully."} 

。だから、私はどこにリクエストボディ( curlのjsonボディ)を置くべきですか?エリクサーで

、私は動作しないようです

req_body = "{\"api_key\":\"#{api_key}\",\"delete_path\":\"#{delete_path}\",\"expired\":\"#{expired}\"}" 

url = "https://cdn.idcfcloud.com/api/v0/caches"                       

response = HTTPoison.delete!(url, header, [req_body]) 

を試してみました。しかしあります。誰かが正しい方法でそれを行う方法を教えてもらえますか?あなたが特定されてきたように

答えて

6

HTTPoison.delete!/3はポスト体として""を送信します。ボディはDELETE要求に対して有効である場合について前にここで質問がありました - あなたはしかし、この機能をバイパスして直接request!/5を呼び出すことができますIs an entity body allowed for an HTTP DELETE request?

を参照してください。

req_body = "{\"api_key\":\"#{api_key}\",\"delete_path\":\"#{delete_path}\",\"expired\":\"#{expired}\"}" 

url = "https://cdn.idcfcloud.com/api/v0/caches"                       

response = HTTPoison.request!(:delete, url, req_body, header) 

私はより多くを与える別の質問に答えていますポスト本体を生成する方法について - Create Github Token using Elixir HTTPoison Library

+0

どうもありがとうございました、それが働いた!!!! –

+0

私は、サブスクリプションをキャンセルするが、請求期間の終了までアクティブそれを維持したい場合(たとえば、あなたが '設定されたこのユースケースと考えHTTPoisonチーム...例えばストライプAPIが削除要求で特定のフラグを受け入れたいですそれを動作させるためにDELETE'パラメータ:)「真」にat_period_end'、あなたは 'と' HTTPoison.request'を使用する必要がありそう。 –

関連する問題