当使用API向github发布特定的,非常简单的内容时,我得到'Content is not valid Base64'错误。内容是Github API响应'内容无效Base64'
unit = $("<li class='s clearfix'></li>");
我正在使用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
}
我得到这个的回复:
422
{"message":"content is not valid Base64",
"documentation_url":"https://developer.github.com/v3/repos/contents/"}
我不明白这不能成为github上有效的base64。所有提交的数据都不会发生这种情况。
content='unit = $("<li class=\'s clearfix\'></li>")'
Base64.urlsafe_decode64(Base64.urlsafe_encode64(content))==content
=> true
我在做什么错?
你能给以'encode64'和'一试decode64'代替'urlsafe_decode64'和'urlsafe_encode64'? –
原来我们必须使用Base64.strict_encode64(...)我在一个github lib中窥探,发现: https://github.com/octokit/octokit.rb/blob/5323df945ecfd524556888e35d042a96c9055a1c/lib/octokit /client/contents.rb#L76 –
呵呵,不知道 - 感谢您跟进并告诉我! +优秀的侦探工作:) –