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