我知道UriTemplate只支持字符串参数,除非你的形式如下(id = {id}等)。例如:
Can I pass non-string to WCF RESTful service using UriTemplate?
但是,我无法完成以下工作。即使我将第二个参数更改为字符串(不是字符串数组)。通过在地址字段中输入URL,可以从浏览器调用此类操作吗?
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "id={id}/legend={legend}/x={x}/y={y}")]
public Stream GetMapPicture(int id, string[] legend, double x, double y)
如果我将参数更改为字符串并输入:
,则一切正常http://localhost:8732/Service1/id=732/legend=[343434, 555]/x=43/y=23
谢谢!
答案 0 :(得分:1)
我在问题中的链接中有一个答案:
Can I pass non-string to WCF RESTful service using UriTemplate?
String[]
应该是必须解析/反序列化的字符串。
然而,有一个int和一个double,它看起来像这样:
[ServiceContract]
public interface IService1
{
[OperationContract]
Stream GetMapPicture(int id, double x);
…
public class Service1 : IService1
{
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "MapPicture/?id={id}&x={x}")]
public Stream GetMapPicture(int id, double x)
{
然后从浏览器中消耗它:
http://localhost:8732/service1/MapPicture/?id=3&x=6.21
因为没有人将此标记为重复,我也在此处发布了答案。与链接的不同之处在于,这里有两个参数与&符号(&)
组合-m