【问题标题】:send latitude and longitude in the URI to call WCFRest service发送 URI 中的经纬度来调用 WCFrest 服务
【发布时间】:2011-08-24 16:26:07
【问题描述】:

我有一个 wcfrest 方法,它需要 2 个参数,纬度和经度。 界面为:

[OperationContract]
[WebInvoke(Method = "GET", 
           RequestFormat = WebMessageFormat.Json, 
           ResponseFormat = WebMessageFormat.Json, 
           BodyStyle = WebMessageBodyStyle.Wrapped, 
           UriTemplate =  "/json/location/{lat}/{lon}")]
List<EntityModel.Location> getLocation(string lat,string lon);

但是当我在浏览器中测试服务时,它给了我错误。它说“找不到资源”。网址:http://localhost:52747/Location.svc/json/location/52.0222/12.3698

我相信这是因为 lat/lon 是双值(12.255888、55.23657)。 任何想法如何解决它??

【问题讨论】:

  • 您的服务的基本 url 是什么,您是否尝试调用 localhost:52747/json/location/52.0222/12.3698
  • 是的。我试过了。不工作。同样的错误。但是,如果我删除删除双精度值并改用 12/55,它就可以工作。
  • 服务是否配置为向您显示其 WSDL?显示了吗?
  • 配置不正确。但是如果我浏览localhost:52747/Location.svc?wsdl,它会显示操作名称。
  • 您是否尝试过将方法签名更改为 getLocation(double lat,double lon); ?

标签: wcf latitude-longitude


【解决方案1】:

使用 base64 编码消除任何非法字符错误

【讨论】:

    【解决方案2】:

    我找到了答案。 可能是http://localhost:52747/Location.svc/json/location/52.0222/12.3698 不是调用服务的正确方式。

    我试过http://localhost:52747/Location.svc/json/location/?lat=55.68743&lon=12.50400

    它正在工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多