2012-02-08 75 views
0

我想要使用.Net中的WebRequest對象來訪問HTTP Web服務。在HTTP Web服務中暴露了不同的方法,我不想複製創建Webrequest和Response對象的代碼。有沒有辦法我可以做到這一點?我發佈了下面的示例代碼。使用.Net WebRequest對象的Http WebService

WebRequest request = WebRequest.Create("url"); 
     NetworkCredential myCred = new NetworkCredential("username", "pwd"); 
     request.Credentials = myCred; 
     request.PreAuthenticate = true; 

     // Get the response. 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

     // Display the status. 
     Console.WriteLine(response.StatusDescription); 
     // Get the stream containing content returned by the server. 
     Stream dataStream = response.GetResponseStream(); 
     // Open the stream using a StreamReader for easy access. 
     StreamReader reader = new StreamReader(dataStream); 
     // Read the content. 
     string responseFromServer = reader.ReadToEnd(); 

     reader.Close(); 
     dataStream.Close(); 
     response.Close(); 

我想是否創建一個函數,它將通過傳遞一個uri來創建請求,並根據請求返回一個響應對象。這是正確的方法嗎?我也不想每次都通過證書。可能嗎?

任何幫助或引用某些資源都會有所幫助。謝謝。

回答

0

如果您使用Visual Studio,請讓Visual Studio從Web服務創建所有客戶端類。您正在連接到Web服務,而不是「Web服務器」。在Web服務示例中,需要使用從「Web服務」讀取信息的工具創建需要創建的類和類型等額外信息。如果您連接到網站,請使用httpwebrequest並下載http。

  1. Web服務 它需要創建類和調用類

創建項目選擇在服務地址「添加服務引用」類型,然後單擊創建

  1. Web服務器 您使用httpwebrequest從網站下載html代碼。
+0

我的不好。我不會通過wsdl或類似的東西公開任何元數據。我只能通過網址操縱它。我認爲這隻能通過HttpwebRequest來完成。 – Mitul 2012-02-08 20:56:22

+0

Httpwebrequest直接將網站稱爲人類。我不確定用戶名和密碼。它會返回一大堆網頁的html代碼。沒有WSDL信息就不能使用Web服務。這是一個電腦互動。 Web服務返回客戶端使用工具重新創建的WSDL中的計算機語言代碼(您無法手動創建代碼),並且客戶端使用Web服務提供的類。它完全不同。 Web服務需要具有WSDL,SOAP信息。 HTTPwebrequest僅適用於諸如http://www.google.com之類的網站。 – iefpw 2012-02-08 20:59:56