вызов cURL из консольного приложения C # - PullRequest
1 голос
/ 22 марта 2012

Я пытаюсь позвонить cURL, чтобы загрузить файл CSV, и я возвращаюсь на страницу входа html.Вот код:

WebRequest myRequest = WebRequest.Create("https://website.com/medias/823533/events.csv");
        myRequest.Credentials = new NetworkCredential("username", "password");
        myRequest.Method = "GET";
        myRequest.PreAuthenticate = true;
        // Return the response. 
        WebResponse myResponse = myRequest.GetResponse();
        StreamReader sr = new StreamReader(myResponse.GetResponseStream());
        string result = sr.ReadToEnd();
        sr.Close();
        Console.WriteLine(result);
        Console.ReadLine();

Есть ли простой метод cURL в C #?Кажется, это не работает, что бы я ни пытался.

1 Ответ

2 голосов
/ 26 марта 2012

Я нашел проблему. Очевидно, что запрос не выполняется, когда вы передаете знак «@» (как в имени пользователя электронной почты) в поле имени пользователя, поэтому его необходимо преобразовать в строку типа base 64. Вот код, только если кто-то еще сталкивается с этим:

        string url = "https://website.com/events.csv";
        WebRequest myReq = WebRequest.Create(url);

        string username = "username";
        string password = "password";
        string usernamePassword = username + ":" + password;
        CredentialCache mycache = new CredentialCache();
        mycache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
        myReq.Credentials = mycache;
        myReq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(usernamePassword)));

        WebResponse wr = myReq.GetResponse();
        Stream receiveStream = wr.GetResponseStream();
        StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);
        string content = reader.ReadToEnd();
        Console.WriteLine(content);
        Console.ReadLine();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...