Browserversion Faken?

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Partikel

Grünschnabel
Hallo Liebes Forum ich habe ein kleines Programm geschrieben was eine Json von einer Website auslesen soll aber wenn ich es ausführe kommt
java.io.IOException: Server returned HTTP response code: 403 for URL

ich weiß das ich eine Browser Version Faken muss :D aber wie? (Bin blutiger Java anfänger xD)

Hier ist der Code:
Java:
package de.luca.restapi;


import org.json.JSONObject;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Timer;
import java.util.TimerTask;

public class RestAPI {
   
    public static void main(String[] args) {

        Timer t = new Timer();

        t.schedule(new TimerTask(){

            @Override
            public void run() {
                try {

                    final JSONObject jsonObject = getObjectFromWebsite("http://fortnite-public-api.theapinetwork.com/prod09/users/public/br_stats?user_id=87d20f2c21a44f88af620e04895d911d&platform=ps4&window=season8");

                    BufferedWriter writer = new BufferedWriter(new FileWriter("c:/temp/Stats.txt"));
                    JSONObject totals = (JSONObject) jsonObject.get("totals");
                    writer.write("Wins: " + totals.getInt("wins") + " ");
                    System.out.println("DEBUG: Alles hat Funktioniert");

                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }, 0, 60000); //alle 60 sekunden...

    }

    private static JSONObject getObjectFromWebsite(final String url) throws IOException {

        final InputStream inputStream = new URL(url).openStream();

        try {

            final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8")));
            final String rawJsonText = read(bufferedReader);

            final JSONObject jsonObject = new JSONObject(rawJsonText);

            return jsonObject;


        } finally {
            inputStream.close();
        }

    }

    private static String read(final Reader reader) throws IOException {

        final StringBuilder stringBuilder = new StringBuilder();

        int counter;

        while((counter = reader.read()) != -1) {
            stringBuilder.append((char) counter);
        }

        return stringBuilder.toString();


    }

}

PS Danke für jede Hilfe :D
 
Java:
 new URL(url).openStream()
öffnet deine URL als InputStream. Das wäre also der Punkt, wo du deinen Code modifizieren müsstest.

Mit den Suchbegriffen "java http request browser" auf Google war how to send get request as if sent from browser zweite Hit. Alternativ "java http request header", was noch bessere Resultate liefert. Viel Spaß beim Ausprobieren ;)
 
Hast du dir denn mal die Links angeschaut, die ComFreek und Bratkartoffel gepostet haben? Da siehst du deutlich, dass du keinen InputStream öffnest.

Viele Grüße
Sascha
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge

Zurück