0

我正在开发一个 Java 服务器应用程序和一个 Android 应用程序,我的 android 应用程序需要从/到服务器(双向)发送和接收数据,例如我的 Android 应用程序需要登录到服务器,服务器需要知道谁登录in. 你推荐我做这种程序的哪种协议?

4

2 回答 2

1

Use Http request (get or post request) to communicate with a server. You have to use a thread or an AsyncTask to perform your request or the execution fails from Api 11+. I attach an example of http request that receives an xml:

    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;
}
于 2013-05-30T21:13:48.683 回答
1

通常在这种情况下,您可以使用 HTTP 协议有几个原因。首先,即使它位于防火墙或类似的东西后面,您也可以访问您的服务器。其次,使用 HTTP,您可以发送在 android 中广泛使用的 XML 或 JSON 数据。您唯一的限制是 HTTP 协议是同步协议,因此您发送并等待答案。使用 HTTP,您可以使用现有的服务器架构,并且可以使用 Web 服务包装您的业务层,以便您可以公开您的服务。如果您需要该服务器可以联系您的应用程序,您可以使用您可以使用 Google Cloud Mesaging。

于 2013-05-30T20:13:22.863 回答