日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android心得8--Internet

發布時間:2023/12/20 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android心得8--Internet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.從Internet獲取數據

利用HttpURLConnection對象,我們可以從網絡中獲取網頁數據.

URLurl = new URL("http://www.sohu.com");

HttpURLConnectionconn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(5*1000);//設置連接超時

conn.setRequestMethod(“GET”);//以get方式發起請求

if(conn.getResponseCode() != 200) throw new RuntimeException("請求url失敗");

InputStreamis = conn.getInputStream();//得到網絡返回的輸入流

Stringresult = readData(is, "GBK");

conn.disconnect();

//第一個參數為輸入流,第二個參數為字符集編碼

publicstatic String readData(InputStream inSream, String charsetName) throwsException{

?? ByteArrayOutputStream outStream = newByteArrayOutputStream();

?? byte[] buffer = new byte[1024];

?? int len = -1;

?? while( (len = inSream.read(buffer)) != -1 ){

????? outStream.write(buffer, 0, len);

?? }

?? byte[] data = outStream.toByteArray();

?? outStream.close();

?? inSream.close();

?? return new String(data, charsetName);

}

利用HttpURLConnection對象,我們可以從網絡中獲取文件數據.

URLurl = new URL("http://photocdn.sohu.com/20100125/Img269812337.jpg");

HttpURLConnectionconn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(5*1000);

conn.setRequestMethod("GET");

if(conn.getResponseCode() != 200) throw new RuntimeException("請求url失敗");

InputStreamis = conn.getInputStream();

readAsFile(is,"Img269812337.jpg");

?

publicstatic void readAsFile(InputStream inSream, File file) throws Exception{

?? FileOutputStream outStream = new FileOutputStream(file);

?? byte[] buffer = new byte[1024];

?? int len = -1;

?? while( (len = inSream.read(buffer)) != -1 ){

????? outStream.write(buffer, 0, len);

?? }

?? outStream.close();

?? inSream.close();

}

2.?多線程下載

使用多線程下載文件可以更快完成文件的下載,多線程下載文件之所以快,是因為其搶占的服務器資源多。如:假設服務器同時最多服務100個用戶,在服務器中一條線程對應一個用戶,100條線程在計算機中并非并發執行,而是由CPU劃分時間片輪流執行,如果A應用使用了99條線程下載文件,那么相當于占用了99個用戶的資源,假設一秒內CPU分配給每條線程的平均執行時間是10ms,A應用在服務器中一秒內就得到了990ms的執行時間,而其他應用在一秒內只有10ms的執行時間。就如同一個水龍頭,每秒出水量相等的情況下,放990毫秒的水

肯定比放10毫秒的水要多。

多線程下載的實現過程:

1>首先得到下載文件的長度,然后設置本地文件的長度。

HttpURLConnection.getContentLength();

RandomAccessFilefile = new RandomAccessFile("QQWubiSetup.exe","rw");

file.setLength(filesize);//設置本地文件的長度

2>根據文件長度和線程數計算每條線程下載的數據長度和下載位置。如:文件的長度為6M,線程數為3,那么,每條線程下載的數據長度為2M,每條線程開始下載的位置如上圖所示。

3>使用Http的Range頭字段指定每條線程從文件的什么位置開始下載,如:指定從文件的2M位置開始下載文件,代碼如下:

HttpURLConnection.setRequestProperty("Range","bytes=2097152-");

4>保存文件,使用RandomAccessFile類指定每條線程從本地文件的什么位置開始寫入數據。

RandomAccessFilethreadfile = new RandomAccessFile("QQWubiSetup.exe ","rw");

threadfile.seek(2097152);//從文件的什么位置開始寫入數據

3.向Internet發送請求參數

利用HttpURLConnection對象,我們可以向網絡發送請求參數.

StringrequestUrl = "http://localhost:8080/itcast/contanctmanage.do";

Map<String,String> requestParams = new HashMap<String, String>();

requestParams.put("age","12");

requestParams.put("name","中國");

?StringBuilder params = new StringBuilder();

for(Map.Entry<String,String> entry : requestParams.entrySet()){

?? params.append(entry.getKey());

?? params.append("=");

?? params.append(URLEncoder.encode(entry.getValue(),"UTF-8"));

?? params.append("&");

}

if(params.length() > 0) params.deleteCharAt(params.length() - 1);

byte[]data = params.toString().getBytes();

URLrealUrl = new URL(requestUrl);

HttpURLConnectionconn = (HttpURLConnection) realUrl.openConnection();

conn.setDoOutput(true);//發送POST請求必須設置允許輸出

conn.setUseCaches(false);//不使用Cache

conn.setRequestMethod("POST"); ???????

conn.setRequestProperty("Connection","Keep-Alive");//維持長連接

conn.setRequestProperty("Charset","UTF-8");

conn.setRequestProperty("Content-Length",String.valueOf(data.length));

conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

DataOutputStreamoutStream = new DataOutputStream(conn.getOutputStream());

outStream.write(data);

outStream.flush();

if(conn.getResponseCode() == 200 ){

??????? String result =readAsString(conn.getInputStream(), "UTF-8");

??????? outStream.close();

??????? System.out.println(result);

}

4.向Internet發送xml數據

利用HttpURLConnection對象,我們可以向網絡發送xml數據.

StringBuilderxml =? new StringBuilder();

xml.append("<?xmlversion=\"1.0\" encoding=\"utf-8\" ?>");

xml.append("<M1V=10000>");

xml.append("<UI=1 D=\"N73\">中國</U>");

xml.append("</M1>");

byte[]xmlbyte = xml.toString().getBytes("UTF-8");

URLurl = newURL("http://localhost:8080/itcast/contanctmanage.do?method=readxml");

HttpURLConnectionconn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(5*1000);

conn.setDoOutput(true);//允許輸出

conn.setUseCaches(false);//不使用Cache

conn.setRequestMethod("POST"); ???????

conn.setRequestProperty("Connection","Keep-Alive");//維持長連接

conn.setRequestProperty("Charset","UTF-8");

conn.setRequestProperty("Content-Length",String.valueOf(xmlbyte.length));

conn.setRequestProperty("Content-Type","text/xml; charset=UTF-8");

DataOutputStreamoutStream = new DataOutputStream(conn.getOutputStream());

outStream.write(xmlbyte);//發送xml數據

outStream.flush();

if(conn.getResponseCode() != 200) throw new RuntimeException("請求url失敗");

InputStreamis = conn.getInputStream();//獲取返回數據

Stringresult = readAsString(is, "UTF-8");

outStream.close();?

5.<!-- 訪問internet權限 -->

<uses-permission

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

?

轉載于:https://www.cnblogs.com/yangkai-cn/archive/2012/07/09/4017123.html

總結

以上是生活随笔為你收集整理的Android心得8--Internet的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 依人综合| 日韩免费网站 | aaaa免费视频| 岛国裸体写真hd在线 | 999精品在线| 亚洲一区二区三区视频在线 | 天堂а√在线中文在线新版 | 国产成人福利在线 | 亚洲欧美日韩精品久久亚洲区 | 婷婷中文字幕在线 | 日本不卡一二三区 | 免看黄大片aa | 一级视频免费观看 | 激情欧美一区二区三区 | 久久久中文字幕 | 无码国产精品一区二区免费式直播 | 亚洲一区二区三区在线视频观看 | 黄瓜污视频 | 免费视频一区二区 | 欧美男女性生活视频 | 国产精品探花一区二区三区 | 尤物国产在线 | 成熟丰满熟妇高潮xxxxx视频 | 在线播放不卡 | 9人人澡人人爽人人精品 | 91热精品 | 日韩一级一区 | 天天干夜夜拍 | 成人欧美一区二区 | 精品久久a| 精品成人av一区二区在线播放 | 久草免费在线播放 | 亚洲天堂免费观看 | 波多野结衣一区二区三区免费视频 | 成人一区二区在线 | 中文字幕精品久久 | 黄色欧美一级片 | 精品国产欧美一区二区 | 精品久久国产视频 | 欧美一区中文字幕 | 国产男女猛烈无遮挡a片漫画 | 日本在线一区二区三区 | 久久久亚洲一区二区三区 | 影音先锋二区 | xx久久| 日韩av视屏 | 欧美大片黄 | 成人久久在线 | 久久网av | 97超碰福利 | 九九热视频免费观看 | 一区二区免费在线 | 欧美日韩亚洲免费 | 一本一道久久a久久 | 日韩成人综合网 | www国产免费 | 日韩精品福利在线 | 亚洲综合一区在线 | 国产粉嫩呻吟一区二区三区 | 亚洲精品国产成人久久av盗摄 | 樱花av在线| 中文字幕av免费在线观看 | 久草视频在线免费 | 国内精品人妻无码久久久影院蜜桃 | 国产污污 | 亚洲色欲色欲www | 亚洲精品性 | 久久久99精品免费观看 | 欧美又大又硬又粗bbbbb | 性色av蜜臀av | 欧美xxxxx少妇 | 日本黄色录相 | 黄色在线播放 | 筱田优全部av免费观看 | 国产精品老熟女视频一区二区 | 国产九九热视频 | 国产男同gay网站 | 在线无码va中文字幕无码 | 亚洲第一区在线观看 | 国产奶头好大揉着好爽视频 | 黄色小说在线视频 | 国产女人高潮视频 | 777精品伊人久久久久大香线蕉 | 2021av在线| 911精品国产一区二区在线 | 性猛交xxxx乱大交3 | 久久大奶 | 欧美性猛交xxxx乱大交3 | 欧美丰满一区二区免费视频 | 国产永久精品大片wwwapp | 折磨小男生性器羞耻的故事 | 中出一区| 特黄视频在线观看 | 人操人人 | 国产精品9 | 91桃色网站 | 国产高清一区在线观看 | 久久久久久久久久国产 | 青青草国产在线视频 |