【发布时间】:2022-11-21 22:12:11
【问题描述】:
我正在运行一个 Java 程序来从 Stock API 下载数据。网址是
https://tvc4.investing.com/49137b20ec52f5d1133789e270e21db8/1668879605/56/56/23/history?symbol=18325&resolution=5&from=1668448858&to=1668880918
如果我从浏览器运行这个 URL,我会得到一个 JSON 作为响应。但是,如果我从 Java 程序运行它,我会得到 403 禁止。我在 Chrome 中查找了开发人员工具,并在 Java 程序中设置了所有 HTTP 请求标头。我添加了 User-Agent/Cookie 等。但是我仍然收到 Forbidden 403 错误。
下面是我在我的 Java 程序中得到的堆栈跟踪。
java.io.IOException: Server returned HTTP response code: 403 for URL: https://tvc4.investing.com/49137b20ec52f5d1133789e270e21db8/1668879605/56/56/23/history?symbol=18325&resolution=5&from=1668448858&to=1668880918
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1997)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
at java.base/java.net.URLConnection.getContent(URLConnection.java:753)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getContent(HttpsURLConnectionImpl.java:404)
at ai.jeet.test.DataDownload.main(DataDownload.java:36)
当我通过 Postman 运行这个 API 调用时,我得到了一个禁止的 403,但也得到了一个 HTML 响应,上面写着启用 Cookies 和 Javascript。
我不明白服务器如何区分 Web 请求调用。显然我做错了什么,但我不知道是什么:-(
【问题讨论】:
标签: java http connection http-status-code-403