2010-08-07 95 views
2

我習慣了使用在其中添加服務引用SOAP服務,它創造強類型的類的每個方法(返回類型)..使用Visual Studio 2010消費WCF Rest服務?

當然REST不喜歡這個

工作,我該怎麼辦使用WCF REST服務?

有沒有辦法使用強類型的返回類型?

我使用Visual Studio 2010中專門

任何意見或想法真的很感激

在此先感謝

+0

不,不是真的 - 當真的沒有機器可讀的服務定義(比如帶有SOAP的WSDL/XSD)時,您會如何創建強類型類......這是我認爲REST的一大缺點 - 您只是回來一個角度支架湯,你必須希望有一些有用的文件描述的地方...... – 2010-08-07 17:23:21

+0

@marc_s其實服務,聲稱是RESTful,並提供一個「一勺湯勺」完全有錯過了REST的自我描述約束和精確媒體類型的重要性。 – 2010-08-07 20:15:38

+0

Darrel,我現在工作..在響應對象上使用ReadAsDataContract .. – 2010-08-07 20:24:27

回答

1

Is there a WCF Rest C# Client Generation Tool?。如果您擁有服務和客戶端,則可以重新使用合約並使用WebChannelFactory實例化客戶端通道。

+0

如果您打算使用.net合約和(de)序列化到.net類型的電線兩端,爲什麼要打擾REST綁定? wshttpbinding不是一個更好的選擇嗎? – 2010-08-07 20:13:47

+0

我的觀點是遠離SOAP ......我不使用它提供的一半東西,所以我只想把數據返回到對象中,而不是通過XML和方法ReadAsDataContract ..這是現在排序 – 2010-08-07 20:25:33

+0

@mark好的,所以你可以自由地給我打電話迂腐,但你要做的不是REST。我並不是說這不是一種有效的方法,只是要意識到,當有人說「你不能這樣做,它不是RESTful」時,你可以自由地忽略它們:-) – 2010-08-07 20:37:23

0
 // It is used to call the webservice url 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://careernet.localhost/rep-details/report_details/retrieves"); 
     request.Method = "POST"; 
     request.ContentType = "application/json"; 
     request.Accept = "application/json"; 

     try 
     { 
      WebResponse response = request.GetResponse(); 

      Stream responseStream = response.GetResponseStream(); 

      // Open the stream using a StreamReader for easy access. 
      StreamReader reader = new StreamReader(responseStream); 
      // Read the content. 
      string responseFromServer = reader.ReadToEnd(); 
      // ... 

我希望它能爲你工作。