<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <WebView android:id="@+id/wv_first" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
private WebView wv_first; wv_first = (WebView) findViewById(R.id.wv_first); // getSettings()設置瀏覽器的屬性 // setJavaScriptEnabled(true)讓WebView支持JavaScript腳本 wv_first.getSettings().setJavaScriptEnabled(true); // setWebViewClient(new WebViewClient()) // 這段代碼的做用是當咱們從一個網頁跳轉到另一個網頁的時候,目標 // 網頁仍然在WebView中顯示 // 而不是打開系統瀏覽器 wv_first.setWebViewClient(new WebViewClient()); //傳入網址,打開網頁 wv_first.loadUrl("http://www.baidu.com");
<uses-permission android:name="android.permission.INTERNET"/>
首先學習一個新的控件ScrollView
因爲手機屏幕大小有限,而ScrollView容許咱們經過滑動查看手機屏幕外的內容
佈局文件代碼以下:html
<ScrollView android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/tv_request_text" android:layout_width="match_parent" android:layout_height="wrap_content" /> </ScrollView>
@Override public void run() { URL url; HttpURLConnection connection; try { // 先new出一個URL對象,傳入網絡地址 // 調用openConnection()方法獲取到HttpURLConnection對象 url = new URL("http://www.baidu.com"); connection = (HttpURLConnection) url.openConnection(); // 設置HTTP請求所使用的方法,GET或者POST // GET表示從服務器獲取數據 // POST表示向服務器提交數據 connection.setRequestMethod("GET"); // 下面使一些自由的定製,好比設置鏈接超時,讀取超時的毫秒數,以及服務器但願獲得的一些消息頭 connection.setConnectTimeout(8000); connection.setReadTimeout(8000); // 接下來利用輸入流對數據進行讀取 InputStream is = connection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); StringBuilder response = new StringBuilder(); String line; while ((line = br.readLine()) != null) { response.append(line); } // 讀取數據完畢,接下來將數據傳送到Handler進行顯示 Message message = new Message(); message.what = SHOW_REQUEST; message.obj = response.toString(); handler.sendMessage(message); //最後關閉HTTP鏈接 connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } }
@Override public void handleMessage(Message msg) { if(msg.what==SHOW_REQUEST){ String response=(String) msg.obj; //在這裏進行UI操做將結果顯示到UI上 tv_request_text.setText(response); } }
<uses-permission android:name="android.permission.INTERNET"/>
// Handler用來處理網絡訪問請求以後獲得數據的顯示 MyHandler handler = new MyHandler(tv_request_text); // 建立訪問網絡的線程對象 final SendHttpRequestThread request = new SendHttpRequestThread(handler); // 設置按鈕點擊事件 btn_request.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 開啓線程 request.start(); } });
@Override public void run() { // 由於HttpClient是一個接口,因此沒法直接建立它的對象,通常是用 HttpClient client = new DefaultHttpClient(); // 想要發起一條GET請求就建立一個HttpGet對象 // 並傳入目標網絡地址,調用HttpClient的execute()方法傳入HttpGet對象 HttpGet httpGet = new HttpGet("http://www.baidu.com"); try { // 執行execute()方法後會返回HttpResponse對象,服務器返回的全部信息就包含在這裏面了 HttpResponse response = client.execute(httpGet); // 接下來取出服務器返回的狀態碼,若是是200就說明請求和響應都成功了 if (response.getStatusLine().getStatusCode() == 200) { // 請求和響應都成功了,取出返回的具體內容 // response的getEntity()獲得一個HttpEntity對象 // EntityUtils這個工具類的toString()方法將獲得的內容轉化成字符串 // 傳入"utf-8"的目的是在服務器返回中文的時候防止亂碼 HttpEntity entity = response.getEntity(); String responsetext = EntityUtils.toString(entity, "utf-8"); // 接下來將數據傳送到Handler進行顯示 Message message = new Message(); message.what = SHOW_REQUEST; message.obj = responsetext; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } }
// Handler用來處理網絡訪問請求以後獲得數據的顯示 MyHandler handler = new MyHandler(tv_request_text); //建立HttpCliect訪問網絡的線程對象 final SendClientRequestThread requestThread=new SendClientRequestThread(handler); // 設置按鈕點擊事件 btn_request.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 開啓線程 requestThread.start(); } });
登陸http://httpd.apache.org/download.cgi 這個地址,2.4.16 ,以下圖位置:android
進入以下界面後,選擇第一項ApacheHaus,這是個第三方下載平臺,在它的網站下載獨立的Apache會是一個壓縮包另外四個中,第二個也是獨立的Apache下載地址,另外三個是集成開發環境。我這裏選的第一個。web
在新的界面中,會發現VC9和VC11和VC14字樣,經過閱讀相關內容得知用VS2014編譯的沒法在windows xp和server 2003中使用。算是爲了兼容性好點吧,我這裏選的用VC14編譯的64位Apache,選擇下載至此,下載過程完成!apache
安裝過程很簡單,由於是壓縮包,因此,先將其解壓包中的 Apache24 解壓到合適的位置windows
找到F:\Apache\httpd-2.4.29-o102n-x86-vc14-r2\Apache24\conf文件,用Notepad++打開,由於Notepad++是比較萬能的記事本軟件,因此用他打開,而且記住行號,以便於下次查找,找到:Define SRVROOT 這一項,將其右方的值改成,當前你Apache安裝存放的目錄地址,以下所示瀏覽器
apache的默認端口是80,若是發現被佔用了,修改httpd.conf的以下選項,以下所示服務器
舒適提示:必定要以管理員身份運行,否則會報錯網絡
以管理員的身份運行cmd命令(左下角搜索框搜索命令行,右鍵以管理員模式打開,F:進入指定盤符,cd..進入指定目錄文件),進入apache的bin目錄,執行以下命令app
httpd.exe -k install -n androidapacheide
該命令的意思是,安裝apache服務,並將該服務名稱命名爲androidapache(你也能夠改爲別的),回車。
以下所示
在安裝目錄中,找到\bin\ApacheMonitor.exe可執行文件,雙擊運行,桌面右下角會出現圖標,雙擊打開窗口界面,會看到如圖所示:
**點擊start,完成apache的啓動,在瀏覽器中輸入http://localhost:80,出現以下界面,啓動成功 **
若Apache服務器軟件不想用了,想要卸載,須要先卸載apache服務(切記,若直接刪除安裝路徑的文件夾,會有殘餘文件在電腦,可能會形成沒必要要的麻煩)
在CMD命令窗口,輸入以下(建議先中止服務再刪除):
sc delete apache
apache是Apache服務器的服務名
重點來了*****
特別注意:127.0.0.1訪問的本機服務器的ip地址,要想讓別人訪問這個服務器,必須先查看本身電腦的本機ip,而後將127.0.0.1換成這個ip地址
這樣設置以後就能夠直接用上面的TTTP訪問網絡的方法直接獲得數據
瞭解更多技術文章,歡迎關注個人我的公衆號