簡體   English   中英

服務器 - Android應用程序和服務器之間的客戶端連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM