**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
11小时前关门了。
Improve this question
我对API和Java都很陌生,但我正试图通过制作一个简单的天气应用程序来理解,然而我下面的代码一直返回错误代码404。如有任何帮助,我将不胜感激。
public class Weather_Api_Class {
public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
Transcript transcript = new Transcript();
transcript.setUrl("https://api.open-meteo.com/v1/forecast?latitude=53.33&longitude=-6.25&hourly=temperature_2m");
Gson gson = new Gson();
String jsonRequest = gson.toJson(transcript);
System.out.println(jsonRequest);
HttpRequest postRequest = HttpRequest.newBuilder()
.uri(new URI("https://api.open-meteo.com/v1/forecast?"))
.POST(BodyPublishers.ofString(jsonRequest))
.build();
HttpClient httpClient = HttpClient.newHttpClient();
HttpResponse<String> postResponse = httpClient.send(postRequest, BodyHandlers.ofString());
System.out.println(postResponse.statusCode());
}
}
1条答案
按热度按时间voj3qocg1#
看起来你应该做一个GET而不是POST。我用
curl
来模拟你正在用java尝试的东西。这会重现问题。得到以下输出:
将
POST
更改为GET
,会有有用的输出:第一次
通常,
POST
请求用于创建数据,而GET
请求用于检索数据。下面是一个修改后的程序,它成功地检索了预测数据。关键的变化是在创建
HttpRequest
时删除了.POST
指令。它默认为GET
。我还删除了一些与问题不直接相关的对象。您必须根据需要将它们添加回处理输出。