今天我遇到了一個問題,我無法讀取JSON文件的內容。爲什麼我無法從這個URL讀取JSON?
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
runOnUiThread(new Runnable() {
@Override
public void run() {
new LoadJsonAsync().execute("http://dongabank.com.vn/exchange/export");
}
});
}
class LoadJsonAsync extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... params) {
if(params[0] != null){
return readFromURL(params[0]);
}else {
return null;
}
}
@Override
protected void onPostExecute(String s) {
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
}
}
private static String readFromURL(String url){
StringBuilder content = new StringBuilder();
try {
URL u = new URL(url);
URLConnection urlConnection = u.openConnection();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while((line = bufferedReader.readLine()) != null){
content.append(line + "\n");
}
bufferedReader.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return content.toString();
}
}
問題是from
當我嘗試使用其他json
環節,它正常工作。但是當我使用上面的json
鏈接時,我無法讀取任何內容。 有人向我解釋爲什麼?以及如何解決這個問題?
謝謝!
要卸下支架是簡單的我。但爲什麼我不能讀入bufferedReader? – alway5dotcom
經過測試後,我發現如果您沒有指定「Accept」標頭,出於某種原因,此服務器會響應錯誤。 添加此行'urlConnection.setRequestProperty(「Accept」,「text/html,application/xhtml + xml,application/xml; q = 0.9,image/webp,*/*; q = 0.8」);'打開連接。 – Gabriel