當使用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 –
呵呵,不知道 - 感謝您跟進並告訴我! +優秀的偵探工作:) –