我正嘗試在Java上的StackExchange API上執行REST請求,並且我有一些讀取輸出的問題。我做了一個小的代碼示例,看看我是否能正常讀取:使用HttpURLConnection讀取REST請求輸出
package Utils;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class RestClient
{
public static void main(String[] args)
{
try
{
URL url = new URL("https://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=stackoverflow");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
System.out.println(conn.getResponseCode());
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String output;
while ((output = reader.readLine()) != null)
{
System.out.println(output);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
下面是從網站輸出樣本:
{"items":[{"tags":["c++","templates","covariant"],"owner":{"reputation":3,"user_id":7447292,"user_type":"registered","profile_image":"https://www.gravatar.com/avatar/8979f1b328b9b0f786dec8b4edd514bc?s=128&d=identicon&r=PG&f=1","display_name":"B.Oudot","link":"http://stackoverflow.com/users/7447292/b-oudot"}
然而,當我打印我的java程序的輸出,我得到狀態碼200,然後剩下的只是一堆非ASCII字符。我是新的REST和JSON。如果可能,我想不使用任何第三方庫。
編輯 我已將我的程序的輸出作爲圖像。
可能更容易使用實際的HTTP庫;也許它是gzipped?由於您沒有提供產出價值的例子,因此不可能說。 –
我編輯我的帖子,通過添加我的輸出圖片。 – Paul