2013-06-04 61 views
0

基於答案在這裏:How can I retrieve and parse just the html returned from an URL?如何在我的.NET Framework 4.5應用程序/網站中使用HttpClient?

...我試圖通過增加基於代碼開始在這裏找到:http://msdn.microsoft.com/en-us/library/system.net.http.httpclient.aspx

...即通過增加這\ App_Code文件\ Functions.cshtml :

@functions 
{ 
    public static string GetUrlHtml(string dynamicUrl) 
    { 
     HttpClient client = new HttpClient(); 
     string body = await client.GetStringAsync(dynamicUrl); 
    // parse it using HTML Agility Pack? (http://htmlagilitypack.codeplex.com/) 
    } 
} 

HttpClient不被識別,並且不提供「解析」上下文菜單項。智能感知不提供我一個「HTTP」進入後:

@using System.Net. 

HttpClient的是真的無法給我嗎?如果是這樣,我可以作爲安慰獎得到什麼?是使用Web客戶端,像這樣我最好的選擇:

WebClient wc = new WebClient(); 
string body = wc.DownloadString(dynamicUrl); 
// parse it with html agility pack 

...或者,如在http://www.4guysfromrolla.com/articles/011211-1.aspx#postadlink所示,我可以使用從HTML敏捷性包的webGet類:

var webGet = new HtmlWeb(); 
var document = webGet.Load(dynamicUrl); 

沒有任何人有任何可支持的意見哪個選項是最好的?

+0

你試圖做從Razor視圖一個HTTP請求?爲什麼? –

+2

檢查參考文獻,你有'System.Net.Http'嗎? –

+0

爲什麼不呢?我喜歡剃刀。 –

回答

1

請確定您對程序集提及System.Net.Http

+0

我可以在.cshtml文件中執行的操作是使用System.Net添加: 。 ...但「Http」不是Intellisense提供的值之一。在這個網站項目(Razor 2)中沒有「References」子文件夾,就像在「普通」或桌面應用程序中一樣,所以我不知道如何添加System.Net.Http。其實,我會試着達雷爾米勒的建議。 –

2

錯誤答案是公認的一個。

這是正確的:

添加到配置

<system.web> 
    <assemblies> 
     <add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </assemblies> 
+0

謝謝。這工作。但''標籤需要位於''標籤內。 –

相關問題