我习惯通过SOAP向/从基于C#的Web服务发送文件,我们总是使用“byte []”类型作为文件内容。
但是,我现在有一个需要byteArrayOutputStream的java web服务,我不知道如何从我的C#客户端发送它。
WSDL将其显示为
<xs:element name="baos" type="tns:byteArrayOutputStream" minOccurs="0" />
将web引用添加到项目中会生成以下空(除了INotify ... stuff)类
public partial class byteArrayOutputStream : outputStream {
}
public abstract partial class outputStream : object, System.ComponentModel.INotifyPropertyChanged {
// boring INotifyPropertyChanged stuff removed
}
这似乎完全没用/无法使用,所以我要么:
或
作为最后的手段,我会要求java团队接受一个byte []而不是ByteArrayOutputStream,但是,有没有人知道我现在如何使用这个基于java的Web服务向它发送文件来自我的C#客户端?
答案 0 :(得分:1)
我敢打赌,这是您尝试拨打的Axis网络服务。某些旧版本的Axis无法在apachesoap
命名空间中定义某些类型。他们可能只需要升级他们的Axis版本。
或者,我告诉他们我告诉.NET Web服务创建者:不要从Web服务返回特定于平台的类型。 Web服务是可以互操作的 - 将byteOutputStream或Map或DataSet返回到对该类型一无所知的平台有什么意义?