Twitter API - 无法更新包含圆括号的状态

Twitter API - unable to update status containing round parenthesis

我正在尝试使用 Twitter API 使用访问令牌发推文。 当我将 API 用于 post 像 "Hey guys" 这样的状态时,它成功了,我可以在我的时间轴上看到推文,但是当我 post "Hey guys :)" 我得到以下回复:

{errors=[{code=32, message=Could not authenticate you.}]}

这里是成功的请求(发送"hey guys"):

 client.target("https://api.twitter.com/1.1/statuses/update.json")
.queryParam("status", "hey%20guys")
.request()
.post(javax.ws.rs.client.Entity.text("sdfsdf"))
.readEntity(Object.class);

这是失败的请求(发送 "hey guys :)" ):

 client.target("https://api.twitter.com/1.1/statuses/update.json")
.queryParam("status", "hey%20guys%20%3A)")
.request()
.post(javax.ws.rs.client.Entity.text("sdfsdf"))
.readEntity(Object.class);

我使用 http://meyerweb.com/eric/tools/dencoder/

对文本进行编码

对于使用 API 发送请求,我使用 javax.ws.rs.client.Client。

我也试图在 Twitter API documentation 中找到有关此问题的任何参考资料,但没有找到任何相关内容。 他们的 API 包含 posting 的示例,但我也可以 post 那个。

如果您对括号进行编码,就可以修复它。

status = status.replaceAll("\(","%28").replaceAll("\)","%29"); 

client.target("https://api.twitter.com/1.1/statuses/update.json")
.queryParam("status", status)
.request()
...