6

我有一个 ASMX Web 服务设置为使用 HTTP GET 方法。采用基本 String 和 Int 参数的简单方法工作正常,我可以调用MyService.asmx/MethodName?Param=Value并返回 XML 响应。

但是,当我有一个具有可为空的 Int (即int?)的方法时,我收到此错误:

<方法名称> Web 服务方法名称无效。

错误消息令人困惑,因为该方法确实存在,只是不在 GET 范围内。我认为这是因为可空类型太复杂而无法通过 URL 传递,但我找不到任何文档或 SO 帖子。

我很欣赏像列表或自定义类等复杂类型不能使用 GET 工作,但我会假设一个简单的可为空的 int 或可为空的日期时间可以在本地处理,只需检测它是否从 URL 中省略。估计没那么简单!

任何建议或解决方法将不胜感激。

谢谢,蒂姆

4

2 回答 2

2

可为空的 int 并不太复杂。它应该产生

  <s:element minOccurs="1" maxOccurs="1" name="Param" nillable="true" type="s:int" /> 

在 WSDL 中。看看这篇文章。错误可能是其他原因,也许?

于 2011-03-14T19:41:33.567 回答
0

如果你有这样的int,你必须使用json文本吗?参数,因为它是对象类型而不是原始类型。该错误具有误导性,因为该服务存在。

如果你有int?a 作为参数,您必须将“{'a':null}”作为内容发送到服务器或某个整数而不是 null。

于 2017-03-24T19:59:24.797 回答