android 积累

1  PhoneGap android loadUrl远程URL

       PhoneGap例子中默认是通过super.loadUrl("file:///android_asset/www/index.html");调用本地文件,

可以通过设置super.setBooleanProperty("loadInWebView", true);来调用远程URL,给出例子:

 
 
  1. public void onCreate(Bundle savedInstanceState) { 
  2.        super.onCreate(savedInstanceState); 
  3.        super.setBooleanProperty("loadInWebView"true); 
  4.        //super.loadUrl("file:///android_asset/www/index.html"); 
  5.        super.loadUrl("http://www.beijibear.com"); 
  6. }

android 向web服务器发送post请求并获取结果,因为 需要访问到网络必须要有权限,先在AndroidManifest.xml中加入如下配置:

   
   
  1. <uses-permission android:name="android.permission.INTERNET" />  

发送post请求并获取结果的activity 代码如下:

   
   
  1. package httppost.pack; 
  2.  
  3. import java.util.ArrayList; 
  4. import java.util.List; 
  5.  
  6. import org.apache.http.HttpResponse; 
  7. import org.apache.http.NameValuePair; 
  8. import org.apache.http.client.entity.UrlEncodedFormEntity; 
  9. import org.apache.http.client.methods.HttpPost; 
  10. import org.apache.http.impl.client.DefaultHttpClient; 
  11. import org.apache.http.message.BasicNameValuePair; 
  12. import org.apache.http.protocol.HTTP; 
  13. import org.apache.http.util.EntityUtils; 
  14.  
  15. import android.app.Activity; 
  16. import android.os.Bundle; 
  17. import android.widget.TextView; 
  18.  
  19. public class AndroidHttpPost extends Activity { 
  20.     /** Called when the activity is first created. */ 
  21.     String action="http://www.beijibear.com/android_post.php"
  22.     HttpPost httpRequest=null
  23.     List <NameValuePair> params=null
  24.     HttpResponse httpResponse; 
  25.     TextView tv=null
  26.     @Override 
  27.     public void onCreate(Bundle savedInstanceState) { 
  28.         super.onCreate(savedInstanceState); 
  29.         setContentView(R.layout.main); 
  30.         tv=(TextView)findViewById(R.id.textView1); 
  31.         /*建立HttpPost连接*/ 
  32.         httpRequest=new HttpPost(action); 
  33.         /*Post运作传送变数必须用NameValuePair[]阵列储存*/ 
  34.         params=new ArrayList<NameValuePair>(); 
  35.         params.add(new BasicNameValuePair("username","beijibear")); 
  36.          
  37.         try { 
  38.             //发出HTTP request 
  39.             httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); 
  40.             //取得HTTP response 
  41.             httpResponse=new DefaultHttpClient().execute(httpRequest); 
  42.             //若状态码为200 
  43.             if(httpResponse.getStatusLine().getStatusCode()==200){ 
  44.                 //取出回应字串 
  45.                 String strResult=EntityUtils.toString(httpResponse.getEntity()); 
  46.                 tv.setText(strResult); 
  47.             }else
  48.                 tv.setText("Error Response"+httpResponse.getStatusLine().toString()); 
  49.             } 
  50.         } catch (Exception e) { 
  51.             // TODO Auto-generated catch block 
  52.             tv.setText(e.getMessage().toString()); 
  53.         } 
  54.     } 

android 获取远程页面内容,抛出 java.net.socketexception permission denied这个异常,原因是: 需要访问到网络必须要有权限,需要在AndroidManifest.xml中加入如下配置:

     
     
  1. <uses-permission android:name="android.permission.INTERNET" /> 

下面是获取并显示远程页面内容的activity 代码:

     
     
  1. package HttpGetContent.pack; 
  2.  
  3. import java.io.BufferedReader; 
  4. import java.io.InputStream; 
  5. import java.io.InputStreamReader; 
  6. import java.io.PrintWriter; 
  7. import java.net.HttpURLConnection; 
  8. import java.net.URL; 
  9.  
  10. import android.app.Activity; 
  11. import android.os.Bundle; 
  12. import android.widget.TextView; 
  13.  
  14. public class HttpGetContent extends Activity { 
  15.     /** Called when the activity is first created. */ 
  16.     String pageContent=""
  17.     BufferedReader in = null
  18.     InputStreamReader isr = null
  19.     InputStream is = null
  20.     PrintWriter pw=null
  21.     HttpURLConnection huc = null
  22.     TextView tv1=null
  23.     @Override 
  24.     public void onCreate(Bundle savedInstanceState) { 
  25.         super.onCreate(savedInstanceState); 
  26.         setContentView(R.layout.main); 
  27.         tv1=(TextView)findViewById(R.id.textView1); 
  28.         String pageUrl="http://www.beijibear.com/"
  29.         try { 
  30.             URL url=new URL(pageUrl); 
  31.             huc = (HttpURLConnection)url.openConnection(); 
  32.             is = huc.getInputStream(); 
  33.             isr = new InputStreamReader(is); 
  34.             in = new BufferedReader(isr); 
  35.             String line = null
  36.             while(((line = in.readLine()) != null)) 
  37.             { 
  38.                if(line.length()==0
  39.                    continue
  40.                pageContent+=line; 
  41.              } 
  42.         } catch (Exception e) { 
  43.             tv1.setText(e.toString()); 
  44.         }finally{//关闭数据流 
  45.             try
  46.                 is.close(); isr.close();in.close();huc.disconnect();pw.close(); 
  47.             }catch (Exception e) { 
  48.                 tv1.setText(e.toString()); 
  49.             } 
  50.         } 
  51.         tv1.setText(pageContent); 
  52.     } 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值