Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Axis2 Web服务的.net客户端_C#_Xml_Web Services_Client_Axis2 - Fatal编程技术网

C# 使用Axis2 Web服务的.net客户端

C# 使用Axis2 Web服务的.net客户端,c#,xml,web-services,client,axis2,C#,Xml,Web Services,Client,Axis2,我有一个.NET2.0C#客户端应用程序,它有一个对Axis2JavaWebService的web服务引用。 其思想是将一些xml数据发送到Web服务,以便可以对其进行解析并插入到数据库中。 WS方法接受类型为“xsd:anytype”的单个参数 Java web服务: public class JWS{ public Response AddData(Object inputXML) { return Response; }

我有一个.NET2.0C#客户端应用程序,它有一个对Axis2JavaWebService的web服务引用。 其思想是将一些xml数据发送到Web服务,以便可以对其进行解析并插入到数据库中。 WS方法接受类型为“xsd:anytype”的单个参数

Java web服务:

public class JWS{    
    public Response AddData(Object inputXML) {            
        return Response;
    }  
}
客户:

JWS-client=newjws();
object inputXML=“一些xml数据”;
response=client.AddData(inputXML);
当使用fiddler进行监控时,我看到了两个问题

1) 请求在实际xml数据之前添加了一个附加元素
'

<inputXML>&lt;xml&gt;some xml data&lt;/xml&gt;</inputXML>
xmlsome xml数据/xml

2) xml是经过编码的,因此这是SOAP下的预期行为,inputXml变量在传递到web服务方法时将被解码回原始字符串


然而,这可能表明您的设计存在问题,您是否考虑过构建一个对象来发送到web服务而不是xml数据?(因为这个对象无论如何都会被透明地转换为用于web服务调用的xml)。

我发现问题不在于编码,但在axis2中查看消息时,java端对它的解释不正确。所以,它被正确地解码了。此外,inputxml现在处理正确。

您能提供一个示例吗?对不起,我对您遇到的问题有点不确定,您能否提供有关如何生成c#客户端的更多详细信息,以及您能否给出实际抛出错误的输出?您是否在调试器中使用web服务来获取inputXML的实际值?我在java ws中添加了一个c#项目中的web服务引用。当我调试时,我会看到使用fiddler的请求和响应&我的整个xml都被JavaWebService接收,但xml是经过编码的,而且在xml之前还有另一个与参数同名的元素(inputXML)。这就是它的工作原理吗?是的,这就是它的工作原理,axis应该去掉
inputXML
标记,然后将编码的xml转回。在
AddData
方法中,您将找到原始的
一些xml数据
字符串。它是否与“包装”/“展开”类型有关?换句话说,你在这里是正确的。
<inputXML>&lt;xml&gt;some xml data&lt;/xml&gt;</inputXML>