2012-06-25 334 views
7

如何調用ASP .NET Web服務並使用URL傳遞參數?如何調用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

但是失敗了。

請指教。

很多謝謝,

回答

2

不是這樣的。
您必須在函數中聲明參數。 例如這裏是一個小例子:

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

然後當你調用它

WebReference.Service1 service = new WebReference.Service1(); 
service.getVariables("foo", "blabla"); 
4

更改第二?&。如果您查看http://[localhost]:31856/MySystem/MyAPI.asmx呈現的頁面,它會告訴您如何將其稱爲HTTP GET

+0

謝謝jonnyGold,它現在不給我任何錯誤,但它不顯示出來,我怎麼知道底層函數是否成功執行? – DafaDil

+0

嘗試指向[SOAP UI](http://www.soapui.org/)。這是一個很好的「外國」網絡服務調試工具。 – bluevector

7

如果您需要傳遞多個參數,使用這種格式param1=value1&param2=value2等on.So你的鏈接應該是:

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

你需要一個像this.This方法的方法返回一個字符串列表,它只是爲了示範。

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

感謝Ashwin,它沒有顯示出來,所以我怎麼知道底層函數是否成功執行? – DafaDil

+0

看看kad1r的答案,你需要一個WebMethod來處理這些查詢和url這樣的http:// [localhost]:31856/MySystem/MyAPI.asmx/getVariables?op = getHeight&a = 254&b = 1 –

+0

我明白了,我的情況有點不同,我需要純粹從URL執行Web服務(用於性能測試)並獲取輸出。 – DafaDil

2

我有同樣的問題,我需要添加以下我對System.Web - 標籤內部webconfig:

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

剩下的就是很像已經提到的(使用的例子阿什溫的回答,只是刪除了運算參數)

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

之後,我能夠再次調用與以下(刪除運算參數的WebService):

http://localhost/MySystem/MyAPI.asmx/AnyMethodName?a=254&b=1 
相關問題