Android应用与计算机上的服务器之间的通信

时间:2015-07-29 13:58:10

标签: java android sockets server

我想创建一个Android应用程序,它可以从计算机上的服务器发送和接收纯文本消息。我尝试使用套接字但我无法将消息发送回服务器,只接收它们。

是否有与计算机通信的内置方式?

谢谢

1 个答案:

答案 0 :(得分:0)

就个人而言,我为此目的使用Web Service

  

Web服务是用于在其间交换信息的标准   异构类型的应用程序或系统。软件应用   用各种编程语言编写并运行各种编程语言   平台可以使用Web服务通过Internet交换信息   使用http协议。

使用Web Service,您可以编写应用程序使用的方法。这些方法可以像任何其他方法一样返回或接受参数,并使用SOAP传输此信息。以下是使用Web服务的Android应用程序示例。在这种情况下,Web服务将Celcius转换为Fahrenheit。

private final String NAMESPACE = "http://www.w3schools.com/webservices/";
private final String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";
private final String SOAP_ACTION = "http://www.w3schools.com/webservices/CelsiusToFahrenheit";
private final String METHOD_NAME = "CelsiusToFahrenheit";
private String TAG = "PGGURU";
private static String celcius;
private static String fahren;

public void getFahrenheit(String celsius) {
    //Create request
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    //Property which holds input parameters
    PropertyInfo celsiusPI = new PropertyInfo();
    //Set Name
    celsiusPI.setName("Celsius");
    //Set Value
    celsiusPI.setValue(celsius);
    //Set dataType
    celsiusPI.setType(double.class);
    //Add the property to request object
    request.addProperty(celsiusPI);
    //Create envelope
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);
    envelope.dotNet = true;
    //Set output SOAP object
    envelope.setOutputSoapObject(request);
    //Create HTTP call object
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

    try {
        //Invole web service
        androidHttpTransport.call(SOAP_ACTION, envelope);
        //Get the response
        SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
        //Assign it to fahren static variable
        fahren = response.toString();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

在上面的示例中,Web Service位于地址为http://www.w3schools.com/webservices/tempconvert.asmx的服务器上。您可以单击该链接以在浏览器中使用Web服务。

如前所述,Web Service可以用各种编程语言编写。 Here's如何使用C#编写一个示例。此Web服务可以使用不仅限于C#的语言(如上面的Java示例)。

相关问题