我想获取用户输入的网页的源代码。当他按下按钮时,他应该在TextView
中看到来源。这是我的代码:
final Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try {
URL url = null;
url = new URL(myEditText.getText().toString());
URLConnection conn = url.openConnection();
BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
myTextView.append(line);
}
} catch (Exception e) {
Log.e("ERR",e.getMessage());
}
}
});
当我运行它时,我在
处得到一个NullPointerExceptionBufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
.--> Println需要一条消息。
我不知道出了什么问题,因为这是来自视频教程。我在Manifest中写过<uses-permission android:name="android.permission.INTERNET"/>
所以,一切都应该是好的。
答案 0 :(得分:0)
试试这个。
url = new URL("http://www.stackoverflow.com");
如果有效,那么您需要设置类似 isValidUrl()的验证吗?
因为用户可能输入了错误的网址。
答案 1 :(得分:0)
if(!TextUtils.isEmpty(myEditText.getText()))
url = new URL(myEditText.getText().toString());
else
url="";
或者如果您使用的是最新版本,请检查StrictMode并将其删除
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
还检查android是否可用网络