Обычная аутентификация при загрузке файла через https - PullRequest
0 голосов
/ 29 мая 2019

Я хочу скачать файл из интернета (через https), используя WinForms в C #

private void Button1_Click(object sender, EventArgs e)
{
    string url = textBox1.Text;
    string user = "user";
    string pwd = "pwd";
    CredentialCache mycache = new CredentialCache();
    if (!string.IsNullOrEmpty(url))
    {
        Thread thread = new Thread(() =>
        {
            //Uri uri = new Uri(url);
            mycache.Add(new Uri(url), "Basic", new NetworkCredential(user, pwd));
            client.Credentials = mycache;
            HttpResponse response = HttpContext.Current.Response;
            response.Clear();
            response.ClearContent();
            response.ClearHeaders();
            response.Buffer = true;
            response.AddHeader("Content-Disposition","attachment;filename=\"" + "a.zip" + "\"");
            byte[] data = client.DownloadData(url);
            response.BinaryWrite(data);
            response.End();
        });
        thread.Start();
    }
}

Когда я начинаю скачивать эту строку: HttpResponse response = HttpContext.Current.Response; бросил исключение

«HttpContext.Current.Response» вызвал исключение типа «System.NullReferenceException».

Может кто-нибудь помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 29 мая 2019

Вы думаете о WebForms (классический ASP.NET).WinForms не будет иметь доступ к HttpContext, поскольку он предполагает, что вы находитесь в веб-контексте (а вы нет).Некоторые варианты: HttpClient, WebClient или HttpWebRequest.

Ваш вопрос сам по себе не является дубликатом https://stackoverflow.com/a/14628308/120753, но он дает вам решение сделать то, что вынеобходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...