[英]How do i make an async GET with authentication in c#?
我需要使此代碼異步,而且 visual studio 告訴我我正在使用的 HttpWebResponse 已被棄用,盡管這是我可以使數據下載工作的唯一方法:
for (int i = 2; i <= Pages; i++)
{
var request = (HttpWebRequest)WebRequest.Create("https://MYAPIPATH=" + i);
request.Headers.Add("Authorization", "Basic " + encoded);
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
var MyResult = JsonConvert.DeserializeObject<RootObject_DataFeed>(responseString);
string Products = JsonConvert.SerializeObject(MyResult.Products);
File.WriteAllText(pathProducts + i + ".json", Products);
using (Stream file = File.OpenWrite(pathProducts + i + ".json"))
{
wresp.GetResponseStream().CopyTo(file);
}
}
我想要做的是讓下載速度更快,一次下載多個文件(因為大約有 3000 頁)
我建議您使用支持身份驗證機制的 http 客戶端。 例如
string authUserName = "user";
string authPassword = "password";
string url = "https://someurl.com";
var httpClient = new HttpClient();
var authToken = Encoding.ASCII.GetBytes($"{authUserName}:{authPassword}");
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(authToken));
var response = await httpClient.GetAsync(url);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
然后你可以用你的字符串內容做同樣的動作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.