EX08_01.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:5k
源码类别:

android开发

开发平台:

Java

  1. package irdc.EX08_01;
  2. /*必需引用apache.http相关类别来建立HTTP连线*/
  3. import org.apache.http.HttpResponse; 
  4. import org.apache.http.NameValuePair; 
  5. import org.apache.http.client.ClientProtocolException; 
  6. import org.apache.http.client.entity.UrlEncodedFormEntity; 
  7. import org.apache.http.client.methods.HttpGet;
  8. import org.apache.http.client.methods.HttpPost; 
  9. import org.apache.http.impl.client.DefaultHttpClient; 
  10. import org.apache.http.message.BasicNameValuePair; 
  11. import org.apache.http.protocol.HTTP; 
  12. import org.apache.http.util.EntityUtils; 
  13. /*必需引用java.io 与java.util相关类别来读写档案*/
  14. import java.io.IOException; 
  15. import java.util.ArrayList; 
  16. import java.util.List; 
  17. import java.util.regex.Matcher;
  18. import java.util.regex.Pattern;
  19. import android.app.Activity; 
  20. import android.os.Bundle; 
  21. import android.view.View; 
  22. import android.widget.Button; 
  23. import android.widget.TextView; 
  24. public class EX08_01 extends Activity 
  25.   /*宣告两个Button物件,与一个TextView物件*/
  26.   private Button mButton1,mButton2; 
  27.   private TextView mTextView1; 
  28.    
  29.   /** Called when the activity is first created. */ 
  30.   @Override 
  31.   public void onCreate(Bundle savedInstanceState) 
  32.   { 
  33.     super.onCreate(savedInstanceState); 
  34.     setContentView(R.layout.main); 
  35.      
  36.     /*透过findViewById建构子建立TextView与Button物件*/ 
  37.     mButton1 =(Button) findViewById(R.id.myButton1); 
  38.     mButton2 =(Button) findViewById(R.id.myButton2);
  39.     mTextView1 = (TextView) findViewById(R.id.myTextView1); 
  40.      
  41.     /*设定OnClickListener来聆听OnClick事件*/
  42.     mButton1.setOnClickListener(new Button.OnClickListener() 
  43.     { 
  44.       /*覆写onClick事件*/
  45.       @Override 
  46.       public void onClick(View v) 
  47.       { 
  48.         /*宣告网址字串*/
  49.         String uriAPI = "http://www.dubblogs.cc:8751/Android/Test/API/Post/index.php";
  50.         /*建立HTTP Post连线*/
  51.         HttpPost httpRequest = new HttpPost(uriAPI); 
  52.         /*
  53.          * Post运作传送变数必须用NameValuePair[]阵列储存
  54.         */
  55.         List <NameValuePair> params = new ArrayList <NameValuePair>(); 
  56.         params.add(new BasicNameValuePair("str", "I am Post String")); 
  57.         try 
  58.         { 
  59.           /*发出HTTP request*/
  60.           httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); 
  61.           /*取得HTTP response*/
  62.           HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest); 
  63.           /*若状态码为200 ok*/
  64.           if(httpResponse.getStatusLine().getStatusCode() == 200)  
  65.           { 
  66.             /*取出回应字串*/
  67.             String strResult = EntityUtils.toString(httpResponse.getEntity()); 
  68.             mTextView1.setText(strResult); 
  69.           } 
  70.           else 
  71.           { 
  72.             mTextView1.setText("Error Response: "+httpResponse.getStatusLine().toString()); 
  73.           } 
  74.         } 
  75.         catch (ClientProtocolException e) 
  76.         {  
  77.           mTextView1.setText(e.getMessage().toString()); 
  78.           e.printStackTrace(); 
  79.         } 
  80.         catch (IOException e) 
  81.         {  
  82.           mTextView1.setText(e.getMessage().toString()); 
  83.           e.printStackTrace(); 
  84.         } 
  85.         catch (Exception e) 
  86.         {  
  87.           mTextView1.setText(e.getMessage().toString()); 
  88.           e.printStackTrace();  
  89.         }  
  90.          
  91.       } 
  92.     }); 
  93.     mButton2.setOnClickListener(new Button.OnClickListener() 
  94.     { 
  95.       @Override 
  96.       public void onClick(View v) 
  97.       { 
  98.         // TODO Auto-generated method stub 
  99.         /*宣告网址字串*/
  100.         String uriAPI = "http://www.dubblogs.cc:8751/Android/Test/API/Get/index.php?str=I+am+Get+String"; 
  101.         /*建立HTTP Get连线*/
  102.         HttpGet httpRequest = new HttpGet(uriAPI); 
  103.         try 
  104.         { 
  105.           /*发出HTTP request*/
  106.           HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest); 
  107.           /*若状态码为200 ok*/
  108.           if(httpResponse.getStatusLine().getStatusCode() == 200)  
  109.           { 
  110.             /*取出回应字串*/
  111.             String strResult = EntityUtils.toString(httpResponse.getEntity());
  112.             /*删除多馀字元*/
  113.             strResult = eregi_replace("(rn|r|n|nr)","",strResult);
  114.             mTextView1.setText(strResult); 
  115.           } 
  116.           else 
  117.           { 
  118.             mTextView1.setText("Error Response: "+httpResponse.getStatusLine().toString()); 
  119.           } 
  120.         } 
  121.         catch (ClientProtocolException e) 
  122.         {  
  123.           mTextView1.setText(e.getMessage().toString()); 
  124.           e.printStackTrace(); 
  125.         } 
  126.         catch (IOException e) 
  127.         {  
  128.           mTextView1.setText(e.getMessage().toString()); 
  129.           e.printStackTrace(); 
  130.         } 
  131.         catch (Exception e) 
  132.         {  
  133.           mTextView1.setText(e.getMessage().toString()); 
  134.           e.printStackTrace();  
  135.         }  
  136.       } 
  137.     }); 
  138.   }
  139.     /* 自订字串取代函数 */
  140.     public String eregi_replace(String strFrom, String strTo, String strTarget)
  141.     {
  142.       String strPattern = "(?i)"+strFrom;
  143.       Pattern p = Pattern.compile(strPattern);
  144.       Matcher m = p.matcher(strTarget);
  145.       if(m.find())
  146.       {
  147.         return strTarget.replaceAll(strFrom, strTo);
  148.       }
  149.       else
  150.       {
  151.         return strTarget;
  152.       }
  153.     }