如何在 WCF Rest Service 中传递多个参数:C# 中的字符串和流

Posted

技术标签:

【中文标题】如何在 WCF Rest Service 中传递多个参数:C# 中的字符串和流【英文标题】:How to pass multiple parameters in WCF Rest Service: string and Stream in C# 【发布时间】:2020-05-02 01:58:46 【问题描述】:

我有一个 WCf 休息服务,它有两个输入参数:字符串和流:

[OperationContract]      
[WebInvoke(Method = "POST", UriTemplate = "ImportStream/Separator", ResponseFormat = 
WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
void ImportStream(string Separator, stream data);

我的代码:

public void ImportStream (string Separator, Stream inputpar)
 //...

我的目标是使用 POSTMAN 调用服务: https://localhost:44355/ServiceLias.svc/rest/ImportStream/Comma

在正文中,我将 Stream 写为 Text ,

但我从一开始就有错误:

For request in operation ImportStream to be a stream the operation must have a single parameter whose type is Stream.

我该如何解决?或者有什么想法可以实现我的目标?谢谢,

【问题讨论】:

这能回答你的问题吗? WCF Rest Webservice with stream 【参考方案1】:

函数签名的定义不符合在 WCF 中启用流数据的规则。它违反了以下定义。

保存要流式传输的数据的参数必须是唯一的 方法中的参数。例如,如果输入消息是 要进行流式传输,操作必须只有一个输入参数。 同样,如果要流式传输输出消息,则操作必须 要么只有一个输出参数,要么有一个返回值。

Streaming的开启方法请参考官方文档。https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-enable-streaming 如果有什么我可以帮忙的,请随时告诉我。

【讨论】:

以上是关于如何在 WCF Rest Service 中传递多个参数:C# 中的字符串和流的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WCF Rest Service 中将类对象作为参数传递

传递流时出现 Wcf Rest Service 错误

将复杂对象传递到 WCF Rest 服务

web service, wcf, wcf rest, web api之间的区别

如何使用 WCF Rest AngularJs 填充下拉列表

验证WCF Rest Service中Json对象的结构