我使用Twitter在其GitHub中为过滤流端点提供的Java类(https://github.com/twitterdev/Twitter-API-v2-sample-code/blob/main/Filtered-Stream/FilteredStreamDemo.java)而且效果很好。
然而,当我在规则中添加一个包含非ASCII字符的单词(例如单词"siccità"(时,它会返回错误:
{"错误:〔{quot;参数:{},消息:无效JSON}〕;标题":"无效请求"细节":"您请求的一个或多个参数无效&"类型":"https://api.twitter.com/2/problems/invalid-request"}
我试图将单词转换为UTF-8,但根本不起作用。是否有任何方法可以将非ASCII字符的单词添加到Java中的Twitter API v2规则中?
在Twitter提供的FilteredStreamDemo.java类中:https://github.com/twitterdev/Twitter-API-v2-sample-code/blob/main/Filtered-Stream/FilteredStreamDemo.java您必须转到createRules类并替换这行代码:
StringEntity body = new StringEntity(getFormattedString("{"add": [%s]}", rules));
其中:
StringEntity body = new StringEntity(getFormattedString("{"add": [%s]}", rules), "UTF-8");
即使规则中有非ASCII字符,它也能正常工作。