2015-08-08 115 views
0

我有一個web api的方法來返回字符串值。我在Web應用程序中使用此Web api控制器。我嘗試使用下面的代碼來調用API的方法:從asp.net應用程序作爲客戶端調用webapi

 Stream data = client.OpenRead(new Uri("http://localhost:40786/api/Getvalues/getstring")); 
     StreamReader reader = new StreamReader(data); 
     string s = reader.ReadToEnd(); 
     Console.WriteLine(s); 
     data.Close(); 
     reader.Close(); 

我呼籲一個網頁的點擊事件這種方法說的Default.aspx。代碼運行良好,但不是調用web-api並返回它的值,而是返回頁面的HTML標記,在該頁面上有按鈕。不知道發生了什麼。任何人都可以建議我在這裏失蹤?

+0

什麼字符串值的http://本地主機:40786/API /的GetValues /的GetString應該返回? – Jerreck

+0

@ Tech-jay你正試圖讀取流,所以,你得到你想要的。如果你需要結果並在另一個地方存儲/顯示。只是試圖爲我的工作:'''client.DownloadString(「http:// localhost:40786/api.Getvalues.getstring」);''' –

+0

大家好,thnx for reply.I分析了這個問題,讓我加還有更多。我試圖在web-api中實現表單身份驗證。所以我使用用戶名/密碼選項登錄表單。用戶登錄並單擊該按鈕以調用web-api。用戶通過身份驗證,但返回的字符串仍然是登錄頁面的html標記。另一方面,當我通過直接在瀏覽器中設置url來調用web-api時,它允許調用,因爲用戶已成爲認證。登出時,瀏覽器不允許通話。所以基於瀏覽器的調用正在工作,但不知道如何實現這一點。 –

回答

1

試試這個代碼:

WebClient client = new WebClient(); 
string resultStr = client.DownloadString(http://localhost:40786/api/Getvalues/getstring"); 
相關問題