我正在尝试使用包含文本作为输入的文件来使用Yahoo Content Analysis。所以每个角色和长度都是可能的。 此代码使用简单的文本字符串(没有特殊字符,短文本),但是当我使用较长的文本或特殊字符时,我会收到错误请求错误(HTTP 400),有时会出现错误消息,例如“没有可行的替代字符”[' “或没有错误信息。 我对每个请求进行编码,HTTP Post对长度没有任何限制。 Yahoo服务是否限制了请求的长度和/或是否有任何无法处理的字符? 任何帮助这项工作的帮助表示赞赏!
这是我的代码(使用commons-httpclient):
String fileInput = FileUtils.readFileToString(f);
StringBuilder builder = new StringBuilder();
builder.append("http://query.yahooapis.com/v1/public/yql?");
System.out.println(fileInput);
builder.append("q=")
.append(URLEncoder.encode("select * from contentanalysis.analyze where text='"+ fileInput +"'" , "UTF-8"))
.append("&format=json");
final String postUrl = builder.toString();
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(postUrl);
// Send POST request
int statusCode = client.executeMethod(method);