私は、Androidサーバからリモートサーバのテキストファイルにあるコンテンツを読み込もうとしました。ファイルのURLは192.168.43.157:8080/apk/list.txt
であり、PC上でブラウザを使用してサーバーがうまく動作し、アドレスバーにURLが貼り付けられていることをテストしました。Androidウェブからデータを取得
私は用途-権限を追加しました:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
...
そして、これは活動
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
String listUrl = "http://192.168.43.157:8080/apk/list.txt";
String response = getWebResponse(listUrl);
TextView textView = (TextView) findViewById(R.id.web_response);
textView.setText(response);
}
private String getWebResponse(String urlStr) {
try {
URL url = new URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestMethod("GET");
httpConn.setDoInput(true);
InputStream is = httpConn.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader br = new BufferedReader(isr);
StringBuilder response = new StringBuilder();
String line = null;
while((line = br.readLine()) != null) {
response.append(line);
}
return response.toString();
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
のコードである私はそれらのどちらもうまくいく、HttpURLConnection
とURLConnection
を使用しようとしました。私はコードをチェックするためにデバッグを使用しています。プログラムはnull
を返す保つ
private String getWebResponse(String urlStr) {
...
InputStream is = httpConn.getInputStream();
....
}
httpConn.getInputStream()
に失敗しました。
ここにフックを外してください!
'ファイルのURLは「192.168.43.157:8080/apk/list.txt」です。いいえ、それはヌーURLです。 urlは 'http://192.168.43.157:8080/apk/list.txt'です。 – greenapps
ありがとうございます。しかし、私が "http:"を取り除くならば。プログラムは "URL url =新しいURL(urlStr);"の例外を発生させます。元の例外は "InputStream is = httpConn.getInputStream();"です。 –
誰がhttp://を取り除くように言ったのですか? – greenapps