我正在尝试使用一些详细here的查询字符串来调用Yahoo BOSS API。除非查询中有空格,否则工作正常。我正在使用URLEncoder.encode(q, "UTF-8")
对查询字符串进行编码。
但是只要查询字符串中有空格,请求就会失败,并显示Please provide valid credentials. OAuth oauth_problem="signature_invalid"
错误。由于查询字符串是编码的,白色空间应该被转义,有其他人面对并解决了这个问题吗?
答案 0 :(得分:0)
您需要在雅虎的最终获得授权人员的凭证,即客户密钥和客户密钥。一旦你得到它,你可以替换代码中的那些,然后将被授权。
答案 1 :(得分:0)
我遇到了完全相同的问题。你需要使用:
UrlEncoder.encode(q,"UTF-8").replace("+","%20")
您的版本正在破坏您的签名,因为Oauth使用百分比编码来签署请求。所以你需要%20
。可以找到关于该主题的好文章here。