【问题标题】:This code giving error此代码给出错误
【发布时间】:2016-02-02 14:28:43
【问题描述】:
 import org.apache.http.entity.ContentType;
 import org.json.JSONException;
 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 ActOn {

  static String BASE_URL = "https://restapi.actonsoftware.com/";
  static String ACTON_USERNAME = "";
  static String ACTON_PASSWORD = "";
  static String CLIENT_ID = "";
  static String CLIENT_SECRET = "";

  public static void main(String[] args) throws JSONException {
   try {
    String access_token = getAccessToken();
    Unirest.setDefaultHeader("Authorization", "Bearer " + access_token);
    printListCount();
   } catch (UnirestException e) {
    e.printStackTrace();
   }
  }

  private static void printListCount() throws UnirestException, JSONException {
   HttpResponse < JsonNode > listResponse = Unirest.get(BASE_URL + "/api/1/list").asJson();
   System.out.println("Total number of lists : " + listResponse.getBody().getObject().getInt("totalCount"));
  }
  private static String getAccessToken() throws UnirestException, JSONException {
   HttpResponse < JsonNode > jsonResponse = Unirest.post(BASE_URL + "token")
    .header("accept", "application/json")
    .field("grant_type", "password")
    .field("username", ACTON_USERNAME)
    .field("password", ACTON_PASSWORD)
    .field("client_id", CLIENT_ID)
    .field("client_secret", CLIENT_SECRET)
    .asJson();
   return jsonResponse.getBody().getObject().getString("access_token");

  }
 }

此代码给出错误;

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.http.entity.ContentType.withCharset(Ljava/lang/String;)Lorg/apache/http/entity/ContentType;
    at com.mashape.unirest.request.body.MultipartBody.field(MultipartBody.java:107)
    at com.mashape.unirest.request.body.MultipartBody.field(MultipartBody.java:73)
    at com.mashape.unirest.request.HttpRequestWithBody.field(HttpRequestWithBody.java:95)
    at com.mashape.unirest.request.HttpRequestWithBody.field(HttpRequestWithBody.java:87)
    at ActOn.getAccessToken(ActOn.java:48)
    at ActOn.main(ActOn.java:20)

我不明白如何解决这个问题。我已经添加了所有需要的 jar。

【问题讨论】:

    标签: java json api getjson


    【解决方案1】:

    您的项目中有不兼容的http-coreunirest-java 版本。

    【讨论】:

    • 我已经包含了“http-core 4.2.3 和 unirest-java 1.4.7”。
    • 嘿 Jens 我已经包含了 jar 文件。现在错误更改为 ActOn 的 com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:68) 处的“线程“主” java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpGet 中的异常.getAccessToken(ActOn.java:56) at ActOn.main(ActOn.java:21) 原因:java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpGet at java.net.URLClassLoader$1.run( Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method)
    • @AbhimanyuJha 你的http-client版本也应该是4.3版
    • 我添加了 http-client4.3 但错误与“java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpGet at com.mashape.unirest.request.BaseRequest. asJson"
    • 你将它添加到你的类路径还是只添加到你的构建路径?
    猜你喜欢
    • 1970-01-01
    • 2013-10-20
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多