Installing Unirest-Java to consume a Mashape API

ManInMoon picture ManInMoon · Oct 31, 2013 · Viewed 8.1k times · Source

I created this simple class:

import javax.swing.JOptionPane;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;

public class TweetSent {

    public static void main(String[] args) {
        try {
            HttpResponse<JsonNode> request = Unirest.get("https://intridea-tweetsentiments.p.mashape.com/twitsentiment/?num_tweets=10&query=%3Cquery%3E").basicAuth("X-Mashape-Authorization", "#######################").asJson();
            JOptionPane.showMessageDialog(null,"request: "+request);
        } catch (UnirestException e) {
            JOptionPane.showMessageDialog(null,"ERROR: "+e);
            e.printStackTrace();
        }
    }

}

But I get this error:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
    at com.mashape.unirest.request.HttpRequest.basicAuth(HttpRequest.java:61)
    at com.NR.V.TweetSent.main(TweetSent.java:21)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64

EDIT:

I removed all of the <repository> elements mentioned in the pom.xml file:

<dependency>
    <groupId>com.mashape.unirest</groupId>
    <artifactId>unirest-java</artifactId>
    <version>1.3.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.3</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpasyncclient</artifactId>
    <version>4.0-beta4</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.3</version>
</dependency>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
</dependency>

I get this from Maven:

[WARNING] The POM for com.mashape.unirest:unirest-java:jar:1.3.0-SNAPSHOT is missing, no dependency information available

enter image description here

Answer

Mark picture Mark · Nov 3, 2013

I'm the author of Unirest-Java.

Can you please update Unirest to its latest version? This problem should have been fixed with version 1.3.0.

Also make sure to have imported all the required dependencies. You can read the installation instructions at https://github.com/Mashape/unirest-java#installing

Edit: To force Maven to re-download the library, try deleting the unirest-java folder at ~/.m2/repository/com/mashape/unirest/unirest-java/ and execute mvn clean compile again.