텍스트를 입력 파일로 사용하여 Yahoo Content Analysis를 사용하려고합니다. 그래서 모든 문자와 길이가 가능합니다. 이 코드는 간단한 텍스트 문자열 (특수 문자, 짧은 텍스트 없음)과 함께 작동하지만 길이가 긴 텍스트 나 특수 문자를 사용할 때 잘못된 요청 오류 (HTTP 400)가 발생하는 경우가 있습니다 ''또는 오류 메시지없이. 모든 요청을 인코딩하고 HTTP Post에 길이 제한이 없어야합니다. Yahoo 서비스는 요청 길이에 제한을 두거나 처리 할 수없는 문자가 있습니까? 도움이 될만한 도움을 주신 모든 분들께 감사드립니다! 나는 문제가 당신이 HTTP의 POST로 요청을 보내는 동안 YQL 쿼리 및 텍스트가 모든 URL에 포함되어 있는지 생각Yahoo YQL 불량 요청
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);
이것은 내가이 매개 변수로 쿼리를 POST하면 작동하는 것 같습니다 : method.addParameter ("q", "select * from contentanalysis.analyze where text = '"+ fileInput + "'"); 물론 그건 당신이 수동으로 따옴표를 벗어나야한다는 것을 의미합니다. 이전 코드가 작동하지 않는 데는 몇 가지 이유가있을 수 있습니다. - URL 길이에 실제 제한이 없어야하지만 URL이 너무 길어서 Yahoo API를 처리 할 수 없습니다. - URLEncoder를 사용하기 전에 따옴표를 이스케이프 처리하지 않습니다. 어쨌든 도와 주셔서 감사합니다! –