2017-04-08 127 views
1

這是我第一個學習C#和Web服務的工作。我開始學習SOAP的學期,現在我正在學習REST。我聽說REST是比較流行的一種。到目前爲止,用戶對我來說似乎很難,但我對它仍然很陌生。C#Restable Web服務返回int值

所以我想創造寧靜的服務。實際上創建服務正在工作。我想從服務和我的客戶端/控制檯端存儲該int值到一個int arrayList返回int值。

問題是剩下的服務正在返回整個xml字符串。像這樣

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">0</int> 

我只想要0,所以我可以將該值存儲在我的arrayList中。我覺得C#應該有一些簡單的庫或者一些讓我能夠在xml標籤之間獲取值的東西。

我寫了測試代碼,讓我更好地瞭解如何從我的REST服務中獲取數據。

這裏是WCF服務合同中的代碼(我們應該在這個任務中使用WCF,所以我在測試代碼中使用它)。

[ServiceContract] 
public interface IService1 
{ 
    [OperationContract] 
    [WebGet(BodyStyle = WebMessageBodyStyle.Bare)] 
    int getTrafficAccidentsByZip(int zCode); 

    [OperationContract] 
    [WebGet(UriTemplate = "latlonValues?lonVal={lonVal}&latVal={latVal}", 
      BodyStyle =WebMessageBodyStyle.Bare)] 
    int getTrafficAccidentByLonLat(double lonVal, double latVal); 

    // TODO: Add your service operations here 
} 

這裏是合同的執行情況。就像我說的,這是測試代碼。所以我只是回來0

public class Service1 : IService1 
{ 
    public int getTrafficAccidentsByZip(int zCode) 
    { 
     return 0; 
    } 

    public int getTrafficAccidentByLonLat(double lonVal, double latValue) 
    { 
     return 0; 
    } 
} 

這是我主要。你可以在下面看到我試圖將字符串轉換爲int。這導致了一個錯誤。

string url = @"http://localhost:14722/Service1.svc/getTrafficAccidentsByZip"; 

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
WebResponse response = request.GetResponse(); 
Stream responseStream = response.GetResponseStream(); 

StreamReader reader = new StreamReader(responseStream); 
// int test = Convert.ToInt32(reader); 
String json = reader.ReadToEnd(); 
// int test = Convert.ToInt32(json); 
Console.WriteLine(json); 

我覺得這應該很容易。但我一直很難找到如何在網上做這個簡單的例子。

任何好的在線C#REST示例或youtube視頻將不勝感激。以示例。我從例子中學習。

回答

0

其餘調用返回您的調用的XML,呈現爲文本。剩下的兩個最流行的形式是JSON和XML,並會/可以分析不同取決於你使用等標題您的結果要麼看起來像或者類似的東西:

{"result" : "0" } 

無論哪種方式,它會回來的字符串,而不是一個二進制0休息。