下面这个例子是连接网络超时的例子:
习惯了的权限
- package cn.com;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.UnsupportedEncodingException;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.NameValuePair;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.message.BasicNameValuePair;
- import org.apache.http.params.BasicHttpParams;
- import org.apache.http.params.HttpConnectionParams;
- import org.apache.http.params.HttpParams;
- import org.apache.http.protocol.HTTP;
- import android.app.Activity;
- import android.app.Dialog;
- import android.app.ProgressDialog;
- import android.os.Bundle;
- import android.os.Handler;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.Toast;
- public class TimeOutTest extends Activity implements OnClickListener {
- // 主,子线程之间的通讯handler
- private Handler handler = new Handler() {
- };
- private static final int SYNC_DIALOG = 0;
- private final static String HOST = "***.***.***.***";
- private final static int PORT = 8080;
- private final static String HOST_IP = "http://" + HOST + ":" + PORT;
- private final static String loginURL = HOST_IP + "******";
- private ProgressDialog myDialog;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Button load = (Button) findViewById(R.id.load);
- load.setOnClickListener(this);
- }
- protected Dialog onCreateDialog(int id) {
- switch (id) {
- case SYNC_DIALOG:
- myDialog = new ProgressDialog(TimeOutTest.this);
- // progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- myDialog.setMessage(getResources().getString(R.string.loginData));
- return myDialog;
- default:
- return null;
- }
- }
- @Override
- public void onClick(View v) {
- // 显示Progress对话框
- showDialog(SYNC_DIALOG);
- //新起一个线程进行下载
- new Thread(new Runnable() {
- public void run() {
- // TODO Auto-generated method stub
- try {
- //设置连接超时
- HttpParams httpParameters = new BasicHttpParams();
- int timeoutConnection = 3000;
- HttpConnectionParams.setConnectionTimeout(httpParameters,
- timeoutConnection);
- DefaultHttpClient httpclient = new DefaultHttpClient(
- httpParameters);
- HttpPost httpost = new HttpPost(loginURL);
- List<NameValuePair> nvps = new ArrayList<NameValuePair>();
- nvps.add(new BasicNameValuePair("username", "go"));
- nvps.add(new BasicNameValuePair("password", "go"));
- httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
- HttpResponse response;
- // This is always a final response
- response = httpclient.execute(httpost);
- HttpEntity entity = response.getEntity();
- InputStream is = entity.getContent();
- ConvertStreamToString(is);
- } catch (ClientProtocolException e) {
- System.out
- .println("_________ClientProtocolException_________");
- } catch (UnsupportedEncodingException e) {
- System.out
- .println("_________UnsupportedEncodingException_________");
- } catch (IOException e) {
- System.out.println("_________IOException_________");
- dismissDialog(SYNC_DIALOG);
- }
- }
- }).start();
- }
- //读取字符流
- public String ConvertStreamToString(InputStream is) {
- StringBuffer sb = new StringBuffer();
- BufferedReader br = new BufferedReader(new InputStreamReader(is));
- String data = "";
- try {
- while ((data = br.readLine()) != null) {
- sb.append(data);
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- final String result = sb.toString();
- handler.post(new Runnable() {
- public void run() {
- Toast.makeText(TimeOutTest.this, result, Toast.LENGTH_LONG)
- .show();
- }
- });
- System.out.println("result ===============" + result);
- return result;
- }
- }
习惯了的权限
- <uses-permission android:name="android.permission.INTERNET" />