Я пытаюсь проанализировать настроение в Твиттере, используя Анализ настроения одуванчика api. Хотя у меня есть довольно много методов, метод ниже мой основной в Class SentimentAnalyser:
private Twitter twitter;
private PrintStream consolePrint;
private List<Status> statuses;
public static List<String> tweets;
@SuppressWarnings("unchecked")
public static String method(String userToken, int nthRecent)
{
//my own user Token: 35a5b026870c49f69d3c688779ff26db
String tweet = tweets.get(nthRecent);
try
{
String urlString = "https://api.dandelion.eu/datatxt/sent/v1/?lang=en&text=";
urlString += tweet;
urlString = urlString + "&token="+userToken;
URL url = new URL(urlString);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); // this is the line 130 the error message refers to
StringBuffer response = new StringBuffer();
String line;
while ((line = in.readLine()) != null)
{
response.append(line);
}
in.close();
con.disconnect();
return response.toString();
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
И вот мой основной метод ниже:
private static PrintStream consolePrint;
public static void main(String[] args) throws TwitterException, IOException
{
consolePrint = System.out;
SentimentAnalyser bigBird = new SentimentAnalyser(consolePrint);
Scanner scan = new Scanner(System.in);
consolePrint.print("Please enter a Twitter handle, do not include the @symbol --> ");
String twitter_handle = scan.next();
while(!twitter_handle.equals("done"))
{
bigBird.queryHandle(twitter_handle);
consolePrint.print("Enter the nth most recent tweet you would like analysed from " + twitter_handle + "--> ");
int nthRecent = scan.nextInt();
consolePrint.print("Enter your user Token --> ");
String userToken = scan.next();
consolePrint.println(bigBird.method(userToken, nthRecent)); //this is the line 42 the error message refers to
twitter_handle = scan.next();
}
}
Однако, когда я запускаю это, я получаю следующее сообщение об ошибке:
Пожалуйста, введите дескриптор Twitter, не включайте @symbol -> rudwick2
Введите n-й самый последний твит, который вы хотели бы проанализировать с rudwick2 -> 3
Введите свой токен пользователя -> 35a5b026870c49f69d3c688779ff26db
java. io.IOException: Сервер вернул код ответа HTTP: 400 для URL: https://api.dandelion.eu/datatxt/sent/v1/?lang=en&text= cien max Отличная презентация и токен = 35a5b026870c49f69d3c688779ff26db при java .base / sun. net. www.protocol.http.HttpURLConnection.getInputStream0 (HttpURLConnection. java: 1913) при java .base / sun. net. www.protocol.http.HttpURLConnection.getInputStream (HttpURLConnection. java: 1509) при java .base / sun. net. www.protocol.https.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl. java: 245) в SentimentAnalyser.method (TwitterPart3. java: 130) в TwitterPart3.main (TwitterPart3. java: 42) null
Я довольно новичок в этом виде проект, и я не уверен, где я ошибся - я могу сказать, что ответ от URL в методе не работает. Это потому, что URL в сочетании с твитом не совсем подходит?