Sta*_*ers 3 ruby rest base64 github-api
使用 API 将某些非常简单的内容发布到 github 时,我收到“内容无效 Base64”错误。内容是
unit = $("<li class='s clearfix'></li>");
Run Code Online (Sandbox Code Playgroud)
我正在使用 Base64.urlsafe_encode64 对内容进行编码。
content = 'unit = $("<li class=\'s clearfix\'></li>")';
url = "https://api.github.com/repos/#{github_user}/#{github_repo}/contents/#{path}"
RestClient.put(url,
{
message: "my message",
content: Base64.urlsafe_encode64(content),
encoding:"base64" }.to_json,
{
params:{access_token:access_token
},accept:'json'}){ |response, request, result|
puts response.code
puts response
}
Run Code Online (Sandbox Code Playgroud)
我得到这个回应:
422
{"message":"content is not valid Base64",
"documentation_url":"https://developer.github.com/v3/repos/contents/"}
Run Code Online (Sandbox Code Playgroud)
我不明白这对 github 来说如何不能是有效的 base64。并不是所有提交的数据都会发生这种情况。
content='unit = $("<li class=\'s clearfix\'></li>")'
Base64.urlsafe_decode64(Base64.urlsafe_encode64(content))==content
=> true
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
原来内容必须用Base64.strict_encode编码并符合 RFC 4648。我在 github 上找到了解决方案:https : //github.com/octokit/octokit.rb/blob/5323df945ecfd524556888e35d042a96c9055a1c/client/client/client内容.rb#L76
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |