阅读Fortnite Json API

正义原子

因此,每次尝试将文件下载到本地计算机时,我都尝试从网站(fortniteapi.com)中读取JSON文件我已经在这里待了大约一个星期,我只是想不通为什么它不起作用。

我也在用格森

到目前为止,这是我的代码:

package sample;

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.io.*;
import java.net.URL;
import java.net.URLConnection;

public class Main extends Application {

@Override
public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
    primaryStage.setTitle("Fortnite");
    primaryStage.setScene(new Scene(root, 300, 275));
    primaryStage.show();
    ReadJson();
}


public static void main(String[] args) {
    launch(args);
}

public void  ReadJson()
{
    try {
        // read url
        String sURL = "https://fortnite-public-api.theapinetwork.com/prod09/users/id?username=Ninja"; //just a string
        // Connect to the URL using java's native library
        URL url = new URL(sURL);
        URLConnection request = url.openConnection();
        request.connect();

        // Convert to a JSON object
        JsonParser jp = new JsonParser(); //from gson
        JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent())); //Convert the input stream to a json element
        JsonObject rootobj = root.getAsJsonObject();
        String output = rootobj.get("username").getAsString(); //just grab the username value

        // print out the result/output
        System.out.println(output);

    } catch (IOException e) {
        System.out.println("Unexpected Error.");
       // JOptionPane.showMessageDialog(null, "Oh no something went wrong.", "Unexpected Error", JOptionPane.ERROR_MESSAGE);
        System.exit(1);
    }
}

}

标记

错误

读取后errorStream()request(浇铸到后HttpURLConnection)HTML被印刷和状态:

拒绝访问| fortnite-public-api.theapinetwork.com使用Cloudflare限制访问

该网站的所有者(fortnite-public-api.theapinetwork.com)已基于浏览器的签名(mybrowsersignature)禁止您访问。

这是什么意思

Cloudflare指出该错误意味着:

域所有者基于客户端的Web浏览器签名阻止此请求。

并将该功能称为“浏览器完整性检查”,从那里我们可以找到浏览器完整性检查的作用?

Cloudflare的浏览器完整性检查(BIC)与不良行为类似,它查找垃圾邮件发送者最常滥用的常见HTTP标头,并拒绝访问您的页面。它还将挑战没有用户代理或非标准用户代理(也经常由滥用机器人,爬虫或访问者使用的访问者)的访问者。

我们可以将User-Agentof更改为之前request应该有效的内容(从User-Agent | MDN复制用户代理): request.connect();

request.setRequestProperty("User-Agent",
            "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0");

将输出预期的输出:

Ninja

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章