因此,每次尝试将文件下载到本地计算机时,我都尝试从网站(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-Agent
of更改为之前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] 删除。
我来说两句