首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Elixir HTTPoison库创建Github令牌

使用Elixir HTTPoison库创建Github令牌
EN

Stack Overflow用户
提问于 2015-09-10 07:56:26
回答 1查看 1.3K关注 0票数 6

我想使用HTTPoison库在Elixir中创建一个Github令牌,但是我不知道如何发送参数HTTPoison。

当使用curl时,它将类似于

代码语言:javascript
复制
$ curl -i -u "ColdFreak" -H "X-GitHub-OTP: 123456" -d '{"scopes": ["repo", "user"], "note"
: "getting-started"}' https://api.github.com/authorizations

当我使用HTTPoison库时,我只是不知道如何发布它。

代码语言:javascript
复制
url = "https://api.github.com/authorizations"
HTTPoison.post!(url, [scopes: ["repo", "user"], note: "getting-started"],  %{"X-GitHub-OTP" => "12345"})

然后它就给出了这样的错误

代码语言:javascript
复制
** (ArgumentError) argument error
            :erlang.iolist_to_binary([{"scopes", ["repo", "user"]}, {"note", "getting-started"}])
  (hackney) src/hackney_client/hackney_request.erl:338: :hackney_request.handle_body/4
  (hackney) src/hackney_client/hackney_request.erl:79: :hackney_request.perform/2

有人能告诉我怎么用正确的方法吗?

HTTPoison的文档是这里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 08:00:36

问题在于您的主体HTTPoison需要一个二进制或元组格式的{:form, [foo: "bar"]}

代码语言:javascript
复制
HTTPoison.post!(url, {:form, [scopes: "repo, user", note: "getting-started"]},  %{"X-GitHub-OTP" => "610554"})

代码语言:javascript
复制
HTTPoison.post!(url, "{\"scopes\": \"repo, user\", \"note\": \"getting-started\"}",  %{"X-GitHub-OTP" => "610554"})

您可以使用毒物库生成上面的JSON:

代码语言:javascript
复制
json = %{scopes: "repo, user", note: "getting-started"} |> Poison.encode!
HTTPoison.post!(url, json, %{"X-GitHub-OTP" => "610554"})
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32496216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档