編輯:關於Android編程
Android網絡應用開發,主要有兩種方式,一種是socket(是對tcp/udp協議的封裝),另外一種就是使用Http協議,Android中主要提供了兩種方式,HttpURLConnection和Apache HttpClient。下面對Android網絡應用開發進行具體的闡述。
定義碼頭
即:定義一個DatagramSocket對象ds
定義可以用來接收或者發送數據的集裝箱
即:定義DatagramPacket對象dp
在碼頭上用集裝箱接受對象發送過來的數據(ds.receive(dp))
關閉碼頭(ds.close())
JDK 的 java.net 包中已經提供了訪問 HTTP 協議的基本功能:HttpURLConnection。HttpURLConnection是java的標准類,HttpURLConnection繼承自URLConnection,可用於向指定網站發送GET請求、POST請求。
下面是一個使用HttpURLConnection類的get請求訪問網絡的工具類:
/**
* getInputStream函數是為了獲取讀取服務器端資源的字節輸入流
* @param path是url字符串
* @return InputStream
*/
public static InputStream getInputStream(String path) {
URL url = null;
try {
url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 設置請求方式
conn.setRequestMethod(GET);
// 設置連接的超時時間
conn.setConnectTimeout(5000);
// 設置可以從服務器端讀取數據
conn.setDoInput(true);
// 獲取服務器端的響應碼
if (conn.getResponseCode() == 200) {
// 獲得讀取服務器端資源的字節輸入流
InputStream in = conn.getInputStream();
return in;
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程序需要直接通過 HTTP 協議來訪問網絡資源。雖然在 JDK 的 java net包中已經提供了訪問 HTTP 協議的基本功能,但是對於大部分應用程序來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。
httpClient就是一個增強版的HttpURLConnection,HttpURLConnection可以做的事情HttpClient全部可以做;HttpURLConnection沒有提供的有些功能,HttpClient也提供了,但它只是關注於如何發送請求、接收響應,以及管理HTTP連接。
下面是使用httpClient get方式訪問網絡的工具類:
/**
* 讀取輸入流,返回數據
* @param stream
* @return
*/
public static byte[] readStream(InputStream stream) throws IOException{
byte[] ret = null;
ByteArrayOutputStream bout = new ByteArrayOutputStream();
byte[] buf = new byte[128];
int len;
while (true) {
len = stream.read(buf);
if (len == -1) {
break;
}
bout.write(buf, 0, len);
}
//強制釋放臨時的資源
buf = null;
ret = bout.toByteArray();
bout.close();
return ret;
}
/**
* get請求方法
* @param url 網址
* @return
*/
public static byte[] doGet(String url) {
byte[] ret = null;
HttpGet request = new HttpGet(url);
HttpClient client = new DefaultHttpClient();
try {
HttpResponse response = client.execute(request);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream stream = entity.getContent();
//返回的實際數據
ret = readStream(stream);
stream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
在Android 2.2版本之前,HttpClient擁有較少的bug,因此使用它是最好的選擇。在Android 2.3版本及以後,HttpURLConnection則是最佳的選擇。對於新的應用程序應該更加偏向於使用HttpURLConnection。
先來看看效果圖當你點擊菜單可以更改圖標,例如點擊happy,首頁就會變一個笑臉,這個實現的過程超級簡單你需要使用ToolBar與DrawableLayout兩個比較新的控
Android Studio常用快捷鍵、Android Studio快捷鍵大全接下來這篇android studio使用教程,主要為大家介紹的是android studi
前言這段時間研究了下以前做app開發的時候並沒有太過關注的JCenter倉庫,在實際開發當中通常都是使用第三方開發者上傳到jcenter的library,而我們使用的這些
1.Network Protocols RTSP (RTP, SDP) HTTP progressive streaming HTTP live streaming dr