java - 服务器返回 HTTP 响应代码:URL JAVA Reddit JSON 的 429
问题描述
我正在尝试获取此处找到的 JSON 文件:https ://www.reddit.com/r/arabfunny/top.json?limit=100
我有以下代码:
static void getPost() throws Exception {
String webPage = "https://www.reddit.com/r/arabfunny/top.json?limit=100";
URL url = new URL(webPage);
URLConnection request = url.openConnection();
request.connect();
JsonParser jp = new JsonParser();
JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent()));
JsonObject rootobj = root.getAsJsonObject();
}
此代码在运行时会引发以下错误:
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 429 for URL: https://www.reddit.com/r/arabfunny/top.json?limit=100
解决方案
修复问题将内容类型设置为UrlConnection
request.setRequestProperty("Content-Type", "application/json; utf-8");
完整代码:
package com.example;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
/**
* Hello world!
*/
public class App {
public static void main(String[] args) throws IOException {
String webPage = "https://www.reddit.com/r/arabfunny/top.json?limit=100";
URL url = new URL(webPage);
URLConnection request = url.openConnection();
request.setRequestProperty("Content-Type", "application/json; utf-8");
JsonParser jp = new JsonParser();
JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent()));
JsonObject rootobj = root.getAsJsonObject();
System.out.println(rootobj);
}
}
推荐阅读
- r - 使用 R 中的非线性最小二乘法优化参数值(带积分)
- sendgrid - SendGrid Incoming Parse WebHook 服务器的静态 IP 地址是什么?
- json - 在 Swift 5 中解析 JSON
- android - 与 Presenter 进行数据绑定
- java - 对于大文件(20G),GoogleCloudStorage Java API 比 gsuitl cp 慢得多
- r - 每个 ID 的重叠日期的总和值
- apache-poi - POI不复制ppt幻灯片笔记
- azure-container-service - 有没有办法像调度程序一样监控 AKS 控制平面进程?
- java - Pusher 在单次推送中复制并接收多个数据
- python - 多文件导入数据框给出错误