我正在尝试使用 HTTP 请求从 API 获取 JSON。但是,我仍然无法设置请求。这是我当前的代码
HttpTransport transport = new HttpTransport() {
@Override
protected LowLevelHttpRequest buildRequest(String s, String s1) throws IOException {
return null;
}
};
我被迫创建了一个 HTTP Transport 对象,但我不知道该放什么,文档也没有给我任何线索
@Override
public void action(String[] args, MessageReceivedEvent event) {
HttpRequest request=new HttpRequest(transport,"GET");
request.setUrl(url);
request.setConnectTimeout(5000);
try {
request.execute();
}
catch (IOException e) {
e.printStackTrace();
}
}
url 已经包含用于授权的 Json Web Token。
但是,在初始化 HttpRequest 时,出现以下错误:
'HttpRequest(com.google.api.client.http.HttpTransport, java.lang.String)' is not public
in 'com.google.api.client.http.HttpRequest'.
Cannot be accessed from outside package
当我清除括号时甚至会出现此错误:
HttpRequest request=new HttpRequest();
有谁知道,我做错了什么?
更新:我已经修复了我的代码,但仍然出现错误:
HttpTransport transport = new ApacheHttpTransport();
HttpRequestFactory requestFactory = transport.createRequestFactory();
try {
HttpRequest request = requestFactory.buildGetRequest(url);
request.execute();
System.out.println(request.getContent());
}
catch (IOException e){
e.printStackTrace();
}
我得到的错误是:
avax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
编辑:即使我使用下面的示例,它也会返回此错误
最佳答案
这意味着 HttpRequest
构造函数被保护调用。您必须使用 HttpRequestFactory
工厂来创建 HttpRequest
实例。
要获得 HttpRequestFactory
,您必须拥有 HttpTransport
,请参阅 https://developers.google.com/api-client-library/java/google-http-java-client/reference/1.20.0/com/google/api/client/http/HttpTransport
HttpTransport transport = new ApacheHttpTransport();
HttpRequestFactory requestFactory = transport.createRequestFactory();
HttpRequest request = requestFactory.buildGetRequest(url);
HttpResponse response = request.execute();
try {
// process the HTTP response object
InputStream is = response.getContent();
try {
// Process the input stream..
} finally {
is.close();
}
} finally {
response.disconnect();
}
Never tried the example hope it will work.
关于java - HTTP 传输和 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40248105/