webapi 远程请求(HttpWebrequest (get ,异步))

public void OnAuthorization(AuthorizationFilterContext context)
{
Task.Run(() =>
{
var header = context.HttpContext.Request.Headers["Authorization"];
string url = "http://localhost:54321/api/account/auth/checks?permission=delete";
Task<WebResponse> response = Httpwebrequest.CreateGetHttpResponse(url, 10000, header, null);
//HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:54321/api/account/auth/checks?permission=delete");
string M = "1";
});
}

自定义方法

public static async Task<WebResponse> CreateGetHttpResponse(string url, int? timeout, string authorization, CookieCollection cookies)
{
if (string.IsNullOrEmpty(url))
{
throw new ArgumentNullException("url");
}
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "GET";
request.UserAgent = DefaultUserAgent;
request.Proxy = null;
request.Headers.Add("Authorization", authorization);
//request.BeginGetRequestStream(new AsyncCallback(ReadCallback), request);
if (timeout.HasValue)
{
request.Timeout = timeout.Value;
}
if (cookies != null)
{
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(cookies);
}
ServicePointManager.DefaultConnectionLimit = 120;
WebResponse WebResponse = await request.GetResponseAsync();
return WebResponse;
}

猜你喜欢

转载自www.cnblogs.com/fenghaolei/p/10473145.html