Hallo Community,
ich benötige beim Parsen von Inhalten einer Website eure Hilfe. Genauer gesagt geht es um das Parsen von Options-Werten des Werte Coca Cola auf der Seite nasdaq.com. Beim Aufruf der Seite https://api.nasdaq.com/api/quote/KO...xcode=oprac&callput=callput&money=at&type=all über den Browser erhalte ich informationen (als json) über das Wertpapier gemäß den gesetzten Parametern.
Wenn ich nun versuche, die Website mittels HttpURLConnection oder unirest zu parsen, geht meine Anfrage immer in einen Timeout.
Mein Sourcecode:
bzw.
Beim Aufruf via curl erhalte ich die folgende Nachricht:
Wirklich nachvollziehen, warum ich keine Berechtigung habe, kann ich leider nicht. Immerhin ist für die Abfrage keine Anmeldung erforderlich und in den Request Headers ist auch nicht nachvollziehbar, dass hier irgendwelche Cookies gesetzt sind.
Anbei die Header, die bei der Anfrage gesetzt sind (diese habe ich ebenfalls schon übernommen, trotzdem hat sich am Verhalten nichts geändert)
Habt ihr eine Idee, was hier schief läuft bzw. sich die Anfrage über Unirest/HttpURLConnection gegenüber der Abfrage über den Browser unterscheidet?
ich benötige beim Parsen von Inhalten einer Website eure Hilfe. Genauer gesagt geht es um das Parsen von Options-Werten des Werte Coca Cola auf der Seite nasdaq.com. Beim Aufruf der Seite https://api.nasdaq.com/api/quote/KO...xcode=oprac&callput=callput&money=at&type=all über den Browser erhalte ich informationen (als json) über das Wertpapier gemäß den gesetzten Parametern.
Wenn ich nun versuche, die Website mittels HttpURLConnection oder unirest zu parsen, geht meine Anfrage immer in einen Timeout.
Mein Sourcecode:
Java:
HttpResponse<JsonNode> response = Unirest.get("https://api.nasdaq" +
".com/api/quote/KO/option-chain?assetclass=stocks&limit=60&fromdate=2023-02-17&todate=2023-02-17" +
"&excode=oprac&callput=callput&money=at&type=all")
.header("accept", "application/json")
.asJson();
bzw.
Java:
URL obj = new URL("https://api.nasdaq" +
".com/api/quote/KO/option-chain?assetclass=stocks&limit=60&fromdate=2023-02-17&todate=2023-02-17" +
"&excode=oprac&callput=callput&money=at&type=all");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
Beim Aufruf via curl erhalte ich die folgende Nachricht:
HTML:
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>
You don't have permission to access "http://api.nasdaq.com/api/quote/KO/option-chain?" on this server.<P>
Reference #18.87a12417.1671046560.95b4f343
</BODY>
</HTML>
Wirklich nachvollziehen, warum ich keine Berechtigung habe, kann ich leider nicht. Immerhin ist für die Abfrage keine Anmeldung erforderlich und in den Request Headers ist auch nicht nachvollziehbar, dass hier irgendwelche Cookies gesetzt sind.
Anbei die Header, die bei der Anfrage gesetzt sind (diese habe ich ebenfalls schon übernommen, trotzdem hat sich am Verhalten nichts geändert)
Code:
:authority: api.nasdaq.com
:method: GET
:path: /api/quote/KO/option-chain?assetclass=stocks&limit=60&fromdate=2023-02-17&todate=2023-02-17&excode=oprac&callput=callput&money=at&type=all
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
sec-ch-ua: "Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "macOS"
sec-fetch-dest: document
sec-fetch-mode: navigate
sec-fetch-site: none
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Habt ihr eine Idee, was hier schief läuft bzw. sich die Anfrage über Unirest/HttpURLConnection gegenüber der Abfrage über den Browser unterscheidet?