2014-11-16 12 views
5

VS15 베타에서 작업 중이며 WebClient를 사용하려고합니다. System.Net은 참조하고, 인텔리 빌드에서 웹 클라이언트 클래스를 사용할 수있는 제안 동안 나는 다음과 같은 오류 얻을 :ASP.NET 5에서 WebClient 사용

var client = new System.Net. 
var html = client.DownloadString(url); 

내가 가서 : 나는 다음과 같은 간단한 코드를하고있는 중이 야

The type or namespace name 'WebClient' does not exist in the namespace 'System.Net' (are you missing an assembly reference?) MyProj.ASP.NET Core 5.0 HomeController.cs

을 웹 클라이언트의 정의에, 그것은 나에게 소스를 보여줍니다. 문제가 무엇인지 확실하지 않습니다. WebClient가 이동 했습니까? 나는 해결책을 찾기 위해 고심하고있다.

감사합니다.

답변

14

WebClient에 대해 확실하지 않지만 System.Net.Http.HttpClient을 사용하여 웹 요청을 할 수도 있습니다.

"frameworks": { 
    "aspnet50": { 
     "frameworkAssemblies": { 
      "System.Net.Http": "4.0.0.0" 
     } 
    }, 
    "aspnetcore50": { 
     "dependencies": { 
      "System.Net.Http": "4.0.0-beta-*" 
     } 
    } 
}, 

을 그리고 여기에 MVC 6 액션 메소드에서 호출하는 방법은 다음과 같습니다 :

project.json 이러한 참조를 추가하기 만 전체 대상으로하면

using System.Net.Http; 
using System.Net.Http.Headers; 
using System.Threading.Tasks; 
using Microsoft.AspNet.Mvc; 

namespace WebApplication50.Controllers 
{ 
    public class HomeController : Controller 
    { 
     public async Task<IActionResult> Index() 
     { 
      var httpClient = new HttpClient(); 
      httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("MyClient", "1.0")); 
      var result = await httpClient.GetStringAsync("http://www.microsoft.com"); 

      ... 

      return View(); 
     } 
    } 
} 
+7

에'(...)를 사용하여 추가하는 것이 좋습니다 수 있음 {...}'HttpClient를 예를 들어, 독자가 제대로 처리하는 것을 잊지 않도록. –

+2

HttpClient는 제작자에 따라 처리 할 필요가 없습니다. 그들은 요청할 때마다 HttpClient를 만드는 대신에 HttpClient를 재사용 할 것을 권장합니다. –

+2

project.json에 대한 참조를 추가하려면 "dnu install System.Net.Http"를 사용하십시오. –

0

당신은 여전히 ​​WebClient를 사용할 수 있습니다. .NET Framework 대신 .NET Framework를 project.json에서 변경하십시오.

"frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { } 
    }, 

"frameworks": { 
    "dnx451": { } 
    },