gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:19 26 4
gpt4 key购买 nike

我想在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com