gpt4 book ai didi

c# - 使用 KSOAP2 从 Android 向 WCF 发送数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:08 25 4
gpt4 key购买 nike

我的代码是,

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("ItemList", mainObject.toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
envelope.implicitTypes = true;
HttpTransportSE transport = new HttpTransportSE(URL);
try {
transport.call(SOAP_ACTION, envelope);
} catch (final Exception e) {
activity.runOnUiThread(new Runnable() {

public void run() {
new CustomToast(activity, SOAP_ACTION + " - "
+ e.getMessage() + " error").show();
e.printStackTrace();
}
});
}
try {
fault = (SoapFault) envelope.bodyIn;
activity.runOnUiThread(new Runnable() {

public void run() {
if (fault != null) {
new CustomToast(activity, fault.getMessage())
.show();
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
try {
result = (SoapObject) envelope.bodyIn;
} catch (Exception e) {
e.printStackTrace();
}

而 mainObject 是一个 JSONObject,其中包含以下数据,

{"ItemList":[{"ID":"","Name":"Abc","Mark":"81"},{"ID":"","Name":"XYZ","Mark":"82"}]}

我通过以下方式在我的 WCF 中收到了它。

[OperationContract]
void InsertUpdateEntry(Items ItemList);

Items类是

[CollectionDataContract(Namespace = "")]
public class Items : List<clsitems>
{
}

clsitems类是

[DataContract]
public class clsitems
{
[DataMember]
public string ID { get; set; }

[DataMember]
public string Name { get; set; }

[DataMember]
public string Mark { get; set; }
}

最后我面临以下异常。

java.io.IOException: HTTP request failed, HTTP status: 500

我只想将数据发送到 Items 类,因此任何其他解决方案也是可以接受的。

最佳答案

尝试在 CollectionDataContract 属性上设置 ItemName。例如:

[CollectionDataContract(Name = "Custom{0}List", ItemName = "CustomItem")]
public class Items : List<clsitems>
{
}

CollectionDataContractAttribute 旨在简化处理来自非提供者的数据时的互操作性,并控制序列化实例的确切形状。为此,ItemName 属性使您能够控制集合中重复项的名称。这在提供者不使用 XML 元素类型名称作为数组项名称时特别有用,例如,如果提供者使用“String”而不是 XSD 类型名称“string”作为元素类型名称。

取自here

关于c# - 使用 KSOAP2 从 Android 向 WCF 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25377225/

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