android 擷取php網頁內容

來源:互聯網
上載者:User
http://blog.csdn.net/kaiqiangzhang001/article/details/8350938

http://www.kuqin.com/shuoit/20140108/337497.html

http://blog.csdn.net/lzz360/article/details/16887237

http://blog.sina.com.cn/s/blog_5a48dd2d0100tw0u.html

http://bbs.51cto.com/thread-954839-1.html

1. AndroidManifest.xml加入許可權:

permission android:name="android. permission.INTERNET" />

permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2. android3.0以上凡是涉及到網路,下載等耗時操作,都不能在主線程中運行,不允許直接在ui線程直接操作httpClient

所以方法一:另起線程去訪問。

方法二:如果不想另起線程,加上以下代碼,可以取消嚴格限制

StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

3.擷取網頁內容代碼:

代碼一:

package List.com.list; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import org.json.JSONArray;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView; public class ListActivity extends Activity {/** Called when the Activity is first created. */ public Button b = null;public String s=null; public ListView listview1=null; @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main); b = (Button) findViewById(R.id.button1); listview1=(ListView) findViewById(R.id.listview1); b.setOnClickListener(new OnClickListener() { public void onClick(View v) {// TODO Auto-generated method stub HttpGet httpget = new HttpGet("http://192.168.0.110:80/json/index.php");HttpResponse httpresponse;try { //執行gethttp提交httpresponse = new DefaultHttpClient().execute(httpget); if(httpresponse.getStatusLine().getStatusCode()==200){//如果成功吧返回的資料轉換成string類型String s=EntityUtils.toString(httpresponse.getEntity()); Log.i("JSON",s); //聲明一個json數組JSONArray js JSONArray(s); //聲明一個資料群組,長度他json數組的長度一樣String[] data=new String[jsonarray.length()]; //迴圈輸出for(int i=0;i arrayadapter=new ArrayAdapter(ListActivity.this, android.R.layout.simple_expandable_list_item_1,data);//設定listview資料;listview1.setAdapter(arrayadapter); } } catch (Exception e) {Log.i("E",e.getMessage().toString()); } }});   }}

代碼二:
new Thread(){public void run(){client = new DefaultHttpClient(); StringBuilder builder = new StringBuilder(); HttpGet myget = new HttpGet("http://10.0.2.2/testAndroid.php"); //HttpGet myget = new HttpGet("http://www.crazyit.org"); try { HttpResponse response = client.execute(myget); HttpEntity entity = response.getEntity();BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent())); for (String s = reader.readLine(); s != null; s = reader.readLine()) { builder.append(s); } JSONObject jsonObject = new JSONObject(builder.toString()); String re_password = jsonObject.getString("password");  } catch (Exception e) { e.printStackTrace(); } }}.start();

代碼三
void getInput(){   try  {  URL url = new URL("http://www.google.cn/");  HttpURLConnection conn = (HttpURLConnection) url.openConnection();  conn.setDoInput(true);  conn.setConnectTimeout(10000);  conn.setRequestMethod("GET");  conn.setRequestProperty("accept", "*/*");  String location = conn.getRequestProperty("location");  int resCode = conn.getResponseCode();  conn.connect();  InputStream stream = conn.getInputStream();  byte[] data=new byte[102400];  int length=stream.read(data);  String str=new String(data,0,length);   conn.disconnect();  System.out.println(str);  stream.close();  }  catch(Exception ee)  {  System.out.print("ee:"+ee.getMessage());   }  } 

以上就介紹了android 擷取php網頁內容,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.