这是我第一次问这里,我是Android Studio的新手。 如何让应用程序显示网站上的内容? 我是从Android Studio中训练中的“连接到网络”学习 https://developer.android.com/training/basics/network-ops/connecting.html .I've试图改变URL,但我不能得到它比我的错误信息 http://i.stack.imgur.com/34TJ8.jpg如何让Android应用程序显示网站上的内容?
编辑显示其他任何:如果可能的话,我想尝试这样做,因为我想知道我在这里做错了什么,并试图解决它。
public class MainActivity extends AppCompatActivity {
private static final String DEBUG_TAG = "HttpExample";
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Connected to network", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private String downloadURL(String myurl) throws IOException{
InputStream is = null;
try{
URL url = new URL(myurl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
int response = conn.getResponseCode();
Log.d(DEBUG_TAG, "The response is: " + response);
is = conn.getInputStream();
String contentAsString = readIt(is);
return contentAsString;
}finally {
if(is != null){
is.close();
}
}
}
private class DownloadWebPageTask extends AsyncTask<String,Void, String> {
@Override
protected String doInBackground(String... urls){
try{
return downloadURL(urls[0]);
}catch (IOException e){
return "Unable to retrieve web page. URL may be invalid.";
}
}
@Override
protected void onPostExecute(String result) {
textView = (TextView) findViewById(R.id.display);
textView.setText(result);
}
}
public String readIt (InputStream is)throws IOException, UnsupportedEncodingException {
BufferedReader reader =
new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuilder builder = new StringBuilder();
String input;
while ((input = reader.readLine()) != null)
builder.append(input);
return builder.toString();
}
public void myClickHandler (View view){
ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()){
Snackbar.make(view, "Connected to network", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
new DownloadWebPageTask().execute("http://www.google.com");
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.fullcreamlowfat.wirelessp5q1.MainActivity"
tools:showIn="@layout/activity_main">
<TextView android:id="@+id/display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:onClick="myClickHandler"/>
</RelativeLayout>
使用此XML中
在Java活动
<uses-permission android:name="android.permission.INTERNET" />
你可以在另外的异常日志,以返回一个字符串,指出 “无法挽回”。然后你会知道实际问题 –