我开始使用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();}}}
我不知道该怎么做才能解决这个问题。
答案 0 :(得分:1)
下图显示了解决问题所需的所有库,或者我可以说完全正确地运行代码。
答案 1 :(得分:0)
您使用的是哪个版本的库?我有同样的问题;使用1.4.1-beta。
Maven链接:http://mvnrepository.com/artifact/com.google.api.client/google-api-client/1.4.1-beta