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

时间:2015-03-23 17:24:44

标签: java twitter jersey-client

我正在尝试使用Twitter API使用访问令牌进行推文。 当我使用API​​发布像“嘿伙计”这样的状态时,它会成功,我可以在我的时间轴上看到推文,但是当我发布“嘿家伙:)”时,我得到以下回复:

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

这是成功的请求(发送“嘿伙计们”):

 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);

这是失败的请求(发送“嘿伙计:)”):

 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包含一个发布的例子,但我也可以发布那个。

1 个答案:

答案 0 :(得分:1)

如果对括号进行编码,则会修复它。

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

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