[英]Server - Client connection between android app and a server
我正在開發Java服務器應用程序和Android應用程序,我的Android應用程序需要從/向服務器發送和接收數據(雙向),例如我的Android應用程序需要登錄到服務器,服務器需要知道誰登錄在.Wich協議你建議我做這種程序嗎?
通常在這種情況下,您可以出於多種原因使用HTTP協議。 首先,即使它位於防火牆之后,您也可以訪問您的服務器。 其次使用HTTP,您可以發送在android中廣泛使用的XML或JSON數據。 您唯一的限制是HTTP協議是一個同步協議,因此您發送並等待答案。 使用HTTP,您可以使用現有的服務器體系結構,並可以使用Web服務包裝業務層,以便公開服務。 如果您需要該服務器可以聯系您的應用程序,您可以使用Google Cloud Mesaging。
使用Http請求(獲取或發布請求)與服務器通信。 您必須使用線程或AsyncTask來執行您的請求,否則Api 11+的執行將失敗。 我附上一個接收xml的http請求示例:
import org.apache.http.*;
[..]
public String getXmlFromUrl(String url) {
String xml = null;
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
xml = EntityUtils.toString(httpEntity);
} catch (UnsupportedEncodingException e) {
Log.d("XMLParser-getXmlFromUrl", "UnsupportedEncodingException");
e.printStackTrace();
} catch (ClientProtocolException e) {
Log.d("XMLParser-getXmlFromUrl", "ClientProtocolException");
e.printStackTrace();
} catch (IOException e) {
Log.d("XMLParser-getXmlFromUrl", "IOException");
e.printStackTrace();
}
// return XML
return xml;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.