android - 如何将值传递给 Android 应用程序中的 Soap 服务(ASMX 服务)中的标志枚举参数

标签 android web-services soap enums asmx

我想在 android 应用程序中调用 soap web 服务,它需要一个枚举值作为参数,它是一个标志枚举。如何从 Android 应用程序将一些值作为标志枚举传递给此 Web 服务方法?

我使用 Ksoap 来调用 soap 服务。

Web服务方法:

[WebMethod]
    public ReceptionCommitResult CommitReceiption(some parameters, EnumName myEnum)
    {
        //mehod body
    }

和网络服务枚举:

[Flags]
public enum EnumName 
{
    One= 0,
    Two = 1,
    Three = 2,
    Four = 4,
    Five = 8,

}

最后是调用服务的代码:

SoapObject soapObj = new SoapObject(ServiceUtil.WSDL_TARGET_NAMESPACE, "RCI");

AttributeInfo attrInfo = new AttributeInfo();
attrInfo.setName("myEnum");
attrInfo.setValue("");
attrInfo.setType(EnumName.class);
soapObj.addAttribute(attrInfo);

 SoapSerializationEnvelope _envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
_envelope.skipNullProperties = false;

_envelope.implicitTypes = true;
_envelope.dotNet = true;
_envelope.setOutputSoapObject(_client);
_envelope.bodyOut = _client;

_envelope.addMapping(WSDL_TARGET_NAMESPACE, "RCI",new MyClassObject().getClass());

HttpTransportSE httpTransport1 = new HttpTransportSE(ServiceUtil.SOAP_ADDRESS, 60000000);
httpTransport1.debug = true;
 httpTransport1.call(ServiceUtil.SOAP_ACTION, _envelope);

最佳答案

在 C# 中,枚举标志通常在内部表示为 32/64 位整数。所以通常你只需要将你的枚举值转换为一个整数值并传递给 webservice。

也许你需要尝试这样的事情:

AttributeInfo attrInfo = new AttributeInfo();
attrInfo.setName("myEnum");
attrInfo.setValue("5");  //For a value of Two | Four
attrInfo.setType(EnumName.class);
soapObj.addAttribute(attrInfo);

关于android - 如何将值传递给 Android 应用程序中的 Soap 服务(ASMX 服务)中的标志枚举参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28655604/

相关文章:

java - JAX-RS 2.0 - 如何从响应对象获取实体

android - 带有 View 列表的链式动画 RxJava2 Android

java - Android 中带有文本的自定义开关

android - 使用支持库中的 GridLayout 会导致 'NoSuchMethodError: android.support.v4.view.ViewCompat.getLayoutDirection'

c# - 使用 NLog 通过 WebService 记录自定义类

web-services - POST 请求不适用于本地主机的 IP 地址

java - 是否可以将自定义信任库与 SOAPConnection 一起使用?

java - ResponseHandler 无法在 Android 的 SOAP Web 服务中工作?

java - SOAP : NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces

android - 未能找到 : com. android.support :support-v4:22. 2.0