Вход на веб-сайт с помощью POST-запроса на c#

#c# #post #login #python-requests

#c# #Публикация #аутентификация #python-запросы

Вопрос:

Я пытаюсь выполнить запрос на вход в Runescape, используя c #. Моя проблема в том, что я не авторизован. Источник страницы отображается нормально, однако я не вошел в систему. Это код, который у меня есть на данный момент. HTML страницы показывает, что мне все еще нужно войти в систему. Я думаю, что это может быть связано с файлами cookie или заголовками, но я не совсем уверен, если кто-нибудь может помочь, я был бы благодарен

 `using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;
using System.Net;
using System.Text.RegularExpressions;

namespace ConsoleApp1
{
 class Program
{
    static void Main(string[] args)
    {
        String username = "my username is here";
        String password = "password here";
                    ServicePointManager.Expect100Continue = false;
                    ServicePointManager.MaxServicePointIdleTime = 2000;
                    ServicePointManager.SecurityProtocol = 
                    SecurityProtocolType.Tls12;
                    byte[] buffer = Encoding.ASCII.GetBytes("username="   
                    username.Replace(" ", "20%")   "amp;password="   
                    password.Replace(" ", "20%")   
                    "amp;mod=wwwamp;ssl=0amp;dest=community,");
                    HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create("https://secure.runescape.com/m=weblogin/login.ws");           
                    WebReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0";
                    WebReq.Method = "POST";
                    WebReq.Referer = "https://secure.runescape.com/m=weblogin/login.ws";
                    WebReq.ContentType = "application/x-www-form-urlencoded";
                    WebReq.ContentLength = buffer.Length;
                    Stream PostData = WebReq.GetRequestStream();
                    PostData.Write(buffer, 0, buffer.Length);
                    PostData.Close();
                    HttpWebResponse WebResp = 
                    (HttpWebResponse)WebReq.GetResponse();
                    Stream Answer = WebResp.GetResponseStream();
                    StreamReader _Answer = new StreamReader(Answer);
                    string data = _Answer.ReadToEnd();
                    Console.WriteLine(data);
                    Console.ReadKey();


    }
}
  

}`

Комментарии:

1. какой ответ вы получаете? Вы уверены, что размещаете всю необходимую информацию?

2. @AbhinawKaushik ответ, который я получаю, — это HTML-код для страницы входа в систему. Я не уверен в том, какая информация требуется в post, я разместил все данные формы. Нужно ли мне включать файлы cookie?

3. @AshleyBlyth Я попробовал, но они используют reCAPTCHA, и мой запрос помечен как бот. Итак, это задача.

4. @yv89c Понятно, спасибо за ответ