首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于WebGet和WebInvoke的WCF RequestFormat

用于WebGet和WebInvoke的WCF RequestFormat
EN

Stack Overflow用户
提问于 2010-07-25 22:39:28
回答 1查看 2.9K关注 0票数 1

我有使用WebGet和WebInvoke公开的WCF服务,这些服务需要将数据包装在xml中。我希望能够返回原始数据,而不需要将其包装在xml中,并且还允许客户端能够调用我的服务,而不需要将请求包装在xml中。

我使用协议缓冲区序列化数据,并将结果转换为base64String,因此WebGet响应如下所示:

代码语言:javascript
复制
<BinVehicleResp xmlns="http://schemas.datacontract.org/2004/07/NTouchServices.Binary_Types" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <BinVehicle>CgsxMjMtNDU2LTc4ORIFNDQwMDAaBUJsYWNrIgVKZXR0YVIJCJrYqoXAShAE (BINARY DATA)</BinVehicle>
</BinVehicleResp>

并且WebInvoke输入必须至少看起来像这样:

代码语言:javascript
复制
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> BINARY DATA </string>

我真的只想要二进制数据部分,特别是对于WebInvoke。我可以接受WebGet的现状。有没有人对我如何允许客户端使用WebInvoke执行HTTP POST而不需要将请求包装在xml中有任何建议?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2010-07-27 09:53:38

我不确定我是否完全理解了这个问题。您声明需要将POSTed格式的数据包装在XML中,但随后询问如何才能在不将数据包装在XML中的情况下发布数据。我最初的回答是使用BodyStyle参数声明您的WebInvoke服务方法:

代码语言:javascript
复制
[OperationContract]
[WebInvoke(Uri="SomeMethod?x={foo}&y={bar}", BodyStyle=WebMessageBodyStyle.WrappedRequest)]
public string SomeMethod(string foo, string bar) {
...
}

以下是BodyStyle的MSDN文档--您可以将其设置为裸(既不包装响应也不包装请求)、包装或WrappedRequest/Response。

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3329581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档