2016-06-26 2 views
1

で、残りのAPI(Redmineの)に投稿するために、こんにちは、私が作成しようとしていますし、問題が上記のコードの結果は以下のエリクサー:どのようにhttpotion

Started POST "/issues.json" for 127.0.0.1 at 2016-06-26 11:47:25 +0200 
Processing by IssuesController#create as JSON 
Parameters: {"issue"=>"{\"tracker_id\":1,\"subject\":\"Example\",\"project_id\":1,\"priority_id\":1}"} 
Current user: admin (id=1) 
あるAPI

def createIssue(issue) do 
    value = %{"project_id" => 1, "subject" => "Example", "priority_id" => 1, "tracker_id" => 1} 
    content = Poison.Encoder.encode(value, []) 
    HTTPotion.post("#{url}/issues.json", [body: "issue=#{content}" , basic_auth: auth()]) 
end 

をRedmineのために投稿

Redmineの右からの応答は、私の知る限り、以下の

Parameters: {"issue"=>{"tracker_id":1,"subject": "Example","project_id":1,"priority_id":1}} 

誰でも助けることができる理解できるようすべきですか? ありがとう

+0

これまでにこのAPIを別の言語で呼びましたか?はいの場合は、どのコードを使用しましたか? – Dogbert

+0

あなたが 'mix.exs'に依存関係として' plug'をまだ追加していない場合は追加してみてください。このコードを試してみてください:https://gist.github.com/anonymous/e532956e00c9630b823fe4434cbe9decそれがあなたのために働くなら答えてください。 – Dogbert

+0

ドッグベルトありがとう。私は引用符/引用符で同様のことをしようとしていました。あなたの要点はうまくいった!私はgithubリポジトリにあなたを信用し、投稿するときのあなたの説明を回答としてマークします。ありがとうございました –

答えて

2

問題はHTTPotionではありません。あなたはJSONとして "問題"ノードをエンコードしていません。

def createIssue(issue) do 
    content = Poison.encode!(%{"issue" => %{"project_id" => 1, "subject" => "Example", "priority_id" => 1, "tracker_id" => 1}}) 
    HTTPotion.post("#{url}/issues.json", [body: content, basic_auth: auth()]) 
end 
+0

これがうまくいくと、 '' issue =#{json} ''が' {"issue":json} "にデコードしているのが不思議です。全身が有効なJSONであると予想される場合は、エラーまたは何かをスローしているはずです。 – Dogbert

+0

@Dogbert:エラーはスローされません –

+0

私のエリクシールコードはこちら[link](https://github.com/wuatanabe/redelix) –

関連する問題