我正在开发一个 Java 服务器应用程序和一个 Android 应用程序,我的 android 应用程序需要从/到服务器(双向)发送和接收数据,例如我的 Android 应用程序需要登录到服务器,服务器需要知道谁登录in. 你推荐我做这种程序的哪种协议?
问问题
1725 次
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 回答