android - 需要如何从 Android Activity 调用/使用 Java Web 服务的工作示例

标签 android service android-activity web wsdl

我是 android 开发的新手,需要连接到服务器并获取 Android Activity 的信息或值。请提供一个工作示例,说明如何从 Android Activity 调用/使用 java Web 服务。

这是我到目前为止所做的。

创建了一个 Android Activity 。 在 eclipse 中创建的类计算给定半径的区域并返回值。 为上述类创建了一个 Web 服务,并使用 WebService Explorer 进行了测试,它可以正常工作。 Web 服务使用端口 11144 进行请求,使用 8080 进行响应。

我的问题是: 我是使用 wsdl 还是使用 Java 客户端作为 stub ? 如果我需要使用 stub ,它是否像任何其他 Java 类一样只是另一个导入?

预先感谢您的帮助。

最佳答案

这是“如何从 Android Activity 调用/使用 Web 服务”的工作示例

这是联系服务的类(class):

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.util.Log;

public class WebService extends SoapObject {

    // a remplacer par les bonnes informations
    private static final String SOAP_ACTION = "http://tempuri.org/GetChampionRotationWeek";

    // a remplacer par les bonnes informations
    private static final String METHOD_NAME = "GetChampionRotationWeek";

    // a remplacer par les bonnes informations
    private static final String NAMESPACE = "http://tempuri.org/";

    // a remplacer par les bonnes informations
    private static final String URL = "http://www.thinkdroid.eu/WebService1.asmx";

    public WebServiceLogin(String namespace, String name) {
        super(namespace, name);
    }

    public String getResult(){
        String resultat = "";
        try {
            SoapObject requete = new SoapObject(NAMESPACE, METHOD_NAME);
            //Soap version 1.1
            SoapSerializationEnvelope enveloppe = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);
            // Codé en dotNet ou non ?
            enveloppe.dotNet = true;
            enveloppe.setOutputSoapObject(requete);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
            androidHttpTransport.call(SOAP_ACTION, enveloppe);
            resultat = enveloppe.getResponse().toString();
        } catch (Exception e) {
            Log.e("Exception", "" + e);
            e.printStackTrace();
        }
        return resultat;
    }
}

这就是实例化和使用此类的方法:

try {
    WebService serviceConnexion = new WebService("http://tempuri.org/", "WebService1Soap");
    result = serviceConnexion.getResult();
} catch (Exception e) {
    e.printStackTrace();
}

我使用这个库来联系服务: http://code.google.com/p/ksoap2-android/

来源:http://www.thinkdroid.eu/?p=192 (法语网站)

希望对你有所帮助

关于android - 需要如何从 Android Activity 调用/使用 Java Web 服务的工作示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10620804/

相关文章:

Android Couchdb - libcouch 和 IPC Aidl 服务

spring - Autowiring 的 spring bean 不是代理

android对话框 Activity 位置

android:在每次应用程序启动时将登录 Activity 放在堆栈顶部

android - (Android)在外部应用程序中启动文件并捕获外部应用程序中的错误

Android Logback - 在应用程序崩溃时将堆栈跟踪存储到日志文件中

android - android 应用程序类启动时运行 flutter 代码

android - 如何在按钮单击事件上停止服务

android - 从 View 中调用电话

带有 onClick 项目的 Android ListView