public final static String api = "api.hypixel.net";
public final static String toGet = "/skyblock/auctions";
public static void main(String[] args) {
try {
SSLSocket socket = (SSLSocket) SSLSocketFactory.getDefault().createSocket(api, 443);
socket.setSoTimeout(500);
PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.println("GET " toGet "?page=" 1 " HTTP/1.1");
pw.println("Host: " api);
pw.println("");
pw.flush();
System.out.println("Wrote Socket: " 1);
BufferedReader bufRead = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
String e;
try {
while ((e = bufRead.readLine()) != null) {
sb.append(e);
}
} catch (SocketTimeoutException easports) {
//
}
System.out.println("finished write");
bufRead.close();
pw.close();
String[] splitted = sb.toString().split("\\{");
String copyofArr = String.join("{", Arrays.copyOfRange(splitted, 1, splitted.length));
String formatted = "{" copyofArr.substring(0, copyofArr.length() - 1);
FileOutputStream fos = new FileOutputStream("gg1ay.txt");
fos.write(formatted.getBytes());
fos.flush();
fos.close();
JsonObject array = JsonParser.parseString(formatted).getAsJsonObject();
array.entrySet().forEach(entry -> System.out.println(entry.getKey() " : " entry.getValue()));
System.out.println("Got result: " 1);
} catch (IOException e) {
System.err.println("an Exception");
e.printStackTrace();
}
}
當我使用此代碼請求時,輸出會附帶一個奇怪的字母表(因此我無法決議 json)。它看起來像 unicode char,所以我附加了 \u,現在它顯示了奇怪的中文字母(如耀、翸、磛)。如何修復此代碼?
uj5u.com熱心網友回復:
我不知道它為什么起作用,但我通過將 http 版本降級到 1.0 解決了這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/427539.html
下一篇:recv()不等待資料
