连接服务器超时的Demo

下面这个例子是连接网络超时的例子: 
Java代码   收藏代码
  1. package cn.com;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.InputStreamReader;  
  7. import java.io.UnsupportedEncodingException;  
  8. import java.util.ArrayList;  
  9. import java.util.List;  
  10.   
  11. import org.apache.http.HttpEntity;  
  12. import org.apache.http.HttpResponse;  
  13. import org.apache.http.NameValuePair;  
  14. import org.apache.http.client.ClientProtocolException;  
  15. import org.apache.http.client.entity.UrlEncodedFormEntity;  
  16. import org.apache.http.client.methods.HttpPost;  
  17. import org.apache.http.impl.client.DefaultHttpClient;  
  18. import org.apache.http.message.BasicNameValuePair;  
  19. import org.apache.http.params.BasicHttpParams;  
  20. import org.apache.http.params.HttpConnectionParams;  
  21. import org.apache.http.params.HttpParams;  
  22. import org.apache.http.protocol.HTTP;  
  23.   
  24. import android.app.Activity;  
  25. import android.app.Dialog;  
  26. import android.app.ProgressDialog;  
  27. import android.os.Bundle;  
  28. import android.os.Handler;  
  29. import android.view.View;  
  30. import android.view.View.OnClickListener;  
  31. import android.widget.Button;  
  32. import android.widget.Toast;  
  33.   
  34. public class TimeOutTest extends Activity implements OnClickListener {  
  35.     // 主,子线程之间的通讯handler  
  36.     private Handler handler = new Handler() {  
  37.     };  
  38.     private static final int SYNC_DIALOG = 0;  
  39.     private final static String HOST = "***.***.***.***";  
  40.     private final static int PORT = 8080;  
  41.     private final static String HOST_IP = "http://" + HOST + ":" + PORT;  
  42.     private final static String loginURL = HOST_IP + "******";  
  43.     private ProgressDialog myDialog;  
  44.   
  45.     /** Called when the activity is first created. */  
  46.     @Override  
  47.     public void onCreate(Bundle savedInstanceState) {  
  48.         super.onCreate(savedInstanceState);  
  49.         setContentView(R.layout.main);  
  50.         Button load = (Button) findViewById(R.id.load);  
  51.         load.setOnClickListener(this);  
  52.     }  
  53.   
  54.     protected Dialog onCreateDialog(int id) {  
  55.         switch (id) {  
  56.         case SYNC_DIALOG:  
  57.             myDialog = new ProgressDialog(TimeOutTest.this);  
  58.             // progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
  59.             myDialog.setMessage(getResources().getString(R.string.loginData));  
  60.             return myDialog;  
  61.         default:  
  62.             return null;  
  63.         }  
  64.     }  
  65.   
  66.     @Override  
  67.     public void onClick(View v) {  
  68.         // 显示Progress对话框  
  69.         showDialog(SYNC_DIALOG);  
  70.         //新起一个线程进行下载  
  71.         new Thread(new Runnable() {  
  72.             public void run() {  
  73.                 // TODO Auto-generated method stub  
  74.                 try {  
  75.                     //设置连接超时  
  76.                     HttpParams httpParameters = new BasicHttpParams();  
  77.                     int timeoutConnection = 3000;  
  78.                     HttpConnectionParams.setConnectionTimeout(httpParameters,  
  79.                             timeoutConnection);  
  80.                     DefaultHttpClient httpclient = new DefaultHttpClient(  
  81.                             httpParameters);  
  82.   
  83.                     HttpPost httpost = new HttpPost(loginURL);  
  84.                     List<NameValuePair> nvps = new ArrayList<NameValuePair>();  
  85.                     nvps.add(new BasicNameValuePair("username""go"));  
  86.                     nvps.add(new BasicNameValuePair("password""go"));  
  87.                     httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));  
  88.   
  89.                     HttpResponse response;  
  90.                     // This is always a final response  
  91.                     response = httpclient.execute(httpost);  
  92.   
  93.                     HttpEntity entity = response.getEntity();  
  94.                     InputStream is = entity.getContent();  
  95.                     ConvertStreamToString(is);  
  96.   
  97.                 } catch (ClientProtocolException e) {  
  98.                     System.out  
  99.                             .println("_________ClientProtocolException_________");  
  100.                 } catch (UnsupportedEncodingException e) {  
  101.                     System.out  
  102.                             .println("_________UnsupportedEncodingException_________");  
  103.                 } catch (IOException e) {  
  104.                     System.out.println("_________IOException_________");  
  105.                     dismissDialog(SYNC_DIALOG);  
  106.                 }  
  107.             }  
  108.         }).start();  
  109.   
  110.     }  
  111.   
  112.     //读取字符流  
  113.     public String ConvertStreamToString(InputStream is) {  
  114.         StringBuffer sb = new StringBuffer();  
  115.         BufferedReader br = new BufferedReader(new InputStreamReader(is));  
  116.         String data = "";  
  117.         try {  
  118.             while ((data = br.readLine()) != null) {  
  119.                 sb.append(data);  
  120.             }  
  121.         } catch (IOException e) {  
  122.             // TODO Auto-generated catch block  
  123.             e.printStackTrace();  
  124.         }  
  125.         final String result = sb.toString();  
  126.         handler.post(new Runnable() {  
  127.             public void run() {  
  128.                 Toast.makeText(TimeOutTest.this, result, Toast.LENGTH_LONG)  
  129.                         .show();  
  130.             }  
  131.         });  
  132.   
  133.         System.out.println("result ===============" + result);  
  134.         return result;  
  135.     }  
  136.   
  137. }  

习惯了的权限 
Java代码   收藏代码
  1. <uses-permission android:name="android.permission.INTERNET" />  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值