无法识别HttpTransport类型的createRequest Factory()方法

时间:2014-11-05 19:25:55

标签: java freebase google-api-client

我开始使用FreeBase api,所以我只从这个page复制以下代码,但是我收到了以下错误:

  

未定义类型的createRequestFactory()方法   HttpTransport

从示例代码的这一行:
HttpRequestFactory requestFactory = httpTransport.createRequestFactory())。

我试图找到问题,但我不能。

import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.jayway.jsonpath.JsonPath;
import java.io.FileInputStream;
import java.util.Properties;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

public class TopicSample {
 public static Properties properties = new Properties();
 public static void main(String[] args) {
  try {
    properties.load(new FileInputStream("freebase.properties"));
    HttpTransport httpTransport = new NetHttpTransport();
    HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
    JSONParser parser = new JSONParser();
    String topicId = "/en/bob_dylan";
    GenericUrl url = new GenericUrl("https://www.googleapis.com/freebase/v1/topic" + topicId);
    url.put("key", properties.get("API_KEY"));
    HttpRequest request = requestFactory.buildGetRequest(url);
    HttpResponse httpResponse = request.execute();
    JSONObject topic = (JSONObject)parser.parse(httpResponse.parseAsString());
      System.out.println(JsonPath.read(topic,"$.property['/type/object/name'].values[0].value").toString());
} catch (Exception ex) {
  ex.printStackTrace();}}}

我不知道该怎么做才能解决这个问题。

2 个答案:

答案 0 :(得分:1)

下图显示了解决问题所需的所有库,或者我可以说完全正确地运行代码。 enter image description here

答案 1 :(得分:0)

您使用的是哪个版本的库?我有同样的问题;使用1.4.1-beta。

Maven链接:http://mvnrepository.com/artifact/com.google.api.client/google-api-client/1.4.1-beta