Test_Get_WEB_TXT.java 代码如下:
---------------------------------------------------------------------------------------------
方法一:(本方法可以指定获取内容的编码,解决获取中文时出现乱码的问题)
---------------------------------------------------------------------------------------------
package com.android.MySoft;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Test_Get_WEB_TXT extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_get_web_txt);
setTitle("测试获取网络文本");
String url="http://www.***.com/test.html";
TextView tv = new TextView(this);
String GET_DATA = "";
try {
GET_DATA = getHtml(url,"UTF-8");
} catch (Exception e) {
GET_DATA = "获取数据错误:" + e.toString();
//e.printStackTrace();
}
tv.setText(GET_DATA);
setContentView(tv);
}
private String getHtml(String urlpath, String encoding) throws Exception {
URL url = new URL(urlpath);
// 实例化一个HTTP连接对象conn
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 定义请求方式为GET,其中GET的格式需要注意
conn.setRequestMethod("GET");
// 定义请求时间,在ANDROID中最好是不好超过10秒。否则将被系统回收。
conn.setConnectTimeout(6 * 1000);
if (conn.getResponseCode() == 200) {
InputStream inStream = conn.getInputStream();
byte[] data = readStream(inStream);
return new String(data, encoding);
}
return "";
}
private byte[] readStream(InputStream inStream) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
// 将输入流不断的读,并放到缓冲区中去。直到读完
while ((len = inStream.read(buffer)) != -1) {
// 将缓冲区的数据不断的写到内存中去。
outStream.write(buffer, 0, len);
}
outStream.close();
inStream.close();
return outStream.toByteArray();
}
}
---------------------------------------------------------------------------------------------
方法二:
---------------------------------------------------------------------------------------------
package com.android.MySoft;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Test_Get_WEB_TXT extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_get_web_txt);
setTitle("测试获取网络文本");
String url="http://www.***.com/test.html";
TextView tv = new TextView(this);
String GET_DATA = "";
GET_DATA =
tv.setText(GET_DATA);
setContentView(tv);
}
/**
* 请求服务
* @param url
*/
private String Get_Data(String url){
String Result = "";
HttpClient client=new DefaultHttpClient();
HttpPost request;
try {
request = new HttpPost(new URI(url));
HttpResponse response = client.execute(request);
//判断请求是否成功
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
if(entity!=null){
Result = EntityUtils.toString(entity); //返回获取的值
} else{
Result = "没有获取到任何数据!"; //返回空
}
}
}catch (URISyntaxException e) {
Result = "错误:网址!";
//e.printStackTrace();
}catch (ClientProtocolException e) {
Result = "错误:客户端协议!";
//e.printStackTrace();
}catch (IOException e) {
Result = "错误:输入输出!";
//e.printStackTrace();
}
return Result;
}
}
---------------------------------------------------------------------------------------------
test_get_web_txt.xml 代码如下:
---------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
---------------------------------------------------------------------------------------------
方法一:(本方法可以指定获取内容的编码,解决获取中文时出现乱码的问题)
---------------------------------------------------------------------------------------------
package com.android.MySoft;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Test_Get_WEB_TXT extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_get_web_txt);
setTitle("测试获取网络文本");
String url="http://www.***.com/test.html";
TextView tv = new TextView(this);
String GET_DATA = "";
try {
GET_DATA = getHtml(url,"UTF-8");
} catch (Exception e) {
GET_DATA = "获取数据错误:" + e.toString();
//e.printStackTrace();
}
tv.setText(GET_DATA);
setContentView(tv);
}
private String getHtml(String urlpath, String encoding) throws Exception {
URL url = new URL(urlpath);
// 实例化一个HTTP连接对象conn
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 定义请求方式为GET,其中GET的格式需要注意
conn.setRequestMethod("GET");
// 定义请求时间,在ANDROID中最好是不好超过10秒。否则将被系统回收。
conn.setConnectTimeout(6 * 1000);
if (conn.getResponseCode() == 200) {
InputStream inStream = conn.getInputStream();
byte[] data = readStream(inStream);
return new String(data, encoding);
}
return "";
}
private byte[] readStream(InputStream inStream) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
// 将输入流不断的读,并放到缓冲区中去。直到读完
while ((len = inStream.read(buffer)) != -1) {
// 将缓冲区的数据不断的写到内存中去。
outStream.write(buffer, 0, len);
}
outStream.close();
inStream.close();
return outStream.toByteArray();
}
}
---------------------------------------------------------------------------------------------
方法二:
---------------------------------------------------------------------------------------------
package com.android.MySoft;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Test_Get_WEB_TXT extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_get_web_txt);
setTitle("测试获取网络文本");
String url="http://www.***.com/test.html";
TextView tv = new TextView(this);
String GET_DATA = "";
GET_DATA =
tv.setText(GET_DATA);
setContentView(tv);
}
/**
* 请求服务
* @param url
*/
private String Get_Data(String url){
String Result = "";
HttpClient client=new DefaultHttpClient();
HttpPost request;
try {
request = new HttpPost(new URI(url));
HttpResponse response = client.execute(request);
//判断请求是否成功
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
if(entity!=null){
Result = EntityUtils.toString(entity); //返回获取的值
} else{
Result = "没有获取到任何数据!"; //返回空
}
}
}catch (URISyntaxException e) {
Result = "错误:网址!";
//e.printStackTrace();
}catch (ClientProtocolException e) {
Result = "错误:客户端协议!";
//e.printStackTrace();
}catch (IOException e) {
Result = "错误:输入输出!";
//e.printStackTrace();
}
return Result;
}
}
---------------------------------------------------------------------------------------------
test_get_web_txt.xml 代码如下:
---------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>