12

如何调用 ASP .NET Web 服务并使用 URL 传递参数?

例如,服务的 URL 是这样的,

http://[localhost]:31856/MySystem/MyAPI.asmx?op=getHeight

我需要传递两个参数a和b,我试过了

http://[localhost]:31856/MySystem/MyAPI.asmx?op=getHeight?a=254&b=1

但是失败了。

请指教。

非常感谢,

4

5 回答 5

9

如果你需要传递多个参数,使用这种格式param1=value1&param2=value2等等。所以你的链接应该是:

http://[localhost]:31856/MySystem/MyAPI.asmx/AnyMethodName?op=getHeight&a=254&b=1

你需要一个这样的方法。这个方法返回一个字符串列表,它只是为了演示。

    [WebMethod]
    public List<string> AnyMethodName(string op, string a, string b)
    {
       //Do whatever you want, get answer
        return (ans.ToList());
    }
于 2012-06-25T12:43:19.180 回答
8

我遇到了同样的问题,我需要在我的 webconfig 中的 system.web -tag 中添加以下内容:

<webServices>
<protocols>
<add name="HttpGet" />
</protocols>
</webServices>

其余的几乎就像已经提到的(使用 Ashwin 回答中的示例,只是删除了操作参数)

   [WebMethod]
    public List<string> AnyMethodName(string a, string b)
    {
       //Do whatever you want, get answer
        return (ans.ToList());
    }

之后,我可以使用以下命令调用 web 服务(再次删除了 op 参数):

http://localhost/MySystem/MyAPI.asmx/AnyMethodName?a=254&b=1
于 2017-01-27T14:11:28.630 回答
4

将第二个更改?&. 如果您查看由 呈现的页面http://[localhost]:31856/MySystem/MyAPI.asmx,它将向您展示如何将其称为HTTP GET.

于 2012-06-25T12:38:21.873 回答
2

不像那样。
您必须在函数中声明参数。例如,这里有一个小例子:

[WebMethod]
public string[] getVariables(string sop, string sgsm)
{ // do what you want ... }

然后当你调用它时

WebReference.Service1 service = new WebReference.Service1();
service.getVariables("foo", "blabla");
于 2012-06-25T12:38:12.553 回答
0

按照以下步骤

第 1 步: 点击 Add Service Reference 并添加 service 的引用。它在部分类中创建对服务的引用以及在项目命名空间下调用服务所需的所有方法。

第 2 步:在 using 中添加相同的类 ..

步骤 3:浏览服务引用下生成的类文件并获取它的名称。

第 4 步:创建一个类似的客户端new Service1SoapClient("Service1Soap");,然后将服务用作 Method 。您可以传递参数(如果需要),就像从另一个调用一个方法时传递的方式一样。

于 2018-09-04T19:37:57.807 回答