C# открыть список писем mail.ru
5306
0
28
activist
Добрый день.
Прошу помощи.
Нужно подключиться к mail.ru и получить страницу списка писем.
В строке $"C-o-o-k-i-e: \r\n" подставляю свою куку. (изменено чтобы цензура слово пропустила)
Хочется понять что не так, нужен ли сертификат. Как нужно правильно подставить куку.
В долгу не останусь.
Код здесь:
Прошу помощи.
Нужно подключиться к mail.ru и получить страницу списка писем.
В строке $"C-o-o-k-i-e: \r\n" подставляю свою куку. (изменено чтобы цензура слово пропустила)
Хочется понять что не так, нужен ли сертификат. Как нужно правильно подставить куку.
В долгу не останусь.
Код здесь:
Показать спойлер
internal class Program
{
private static void Main()
{
var server = new TcpClient("217.69.139.216", 443);
var serverSslStream = new SslStream(server.GetStream(), false, SslValidationCallback, null);
serverSslStream.AuthenticateAsClient("e.mail.ru");
var request =
$"GET https://e.mail.ru/messages/inbox/?back=1 HTTP/1.1\r\n" +
$"Host:www.ecom.honda-eu.com:443\r\n" +
$"User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko\r\n" +
$"Accept: text/html, application/xhtml+xml, */*\r\n" +
$"Accept-Encoding: gzip, deflate\r\n" +
$"Accept-Language: ru,en-US;q=0.7,en;q=0.3\r\n" +
$"C-o-o-k-i-e: \r\n" + // (изменено чтобы цензура слово пропустила)
$"DNT: 1\r\n" +
$"\r\n";
var bytes = Encoding.ASCII.GetBytes(request);
serverSslStream.Write(bytes);
var otvet = ReadMessage(serverSslStream);
Console.ReadKey();
}
private static bool SslValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
{
return true;
}
static string ReadMessage(SslStream sslStream)
{
byte[] buffer = new byte[2048];
StringBuilder messageData = new StringBuilder();
int bytes = -1;
do
{
bytes = sslStream.Read(buffer, 0, buffer.Length);
Decoder decoder = Encoding.UTF8.GetDecoder();
char[] chars = new char[decoder.GetCharCount(buffer, 0, bytes)];
decoder.GetChars(buffer, 0, bytes, chars, 0);
messageData.Append(chars);
if (messageData.ToString().IndexOf("<EOF>") != -1)
{
break;
}
} while (bytes != 0);
return messageData.ToString();
}
}
{
private static void Main()
{
var server = new TcpClient("217.69.139.216", 443);
var serverSslStream = new SslStream(server.GetStream(), false, SslValidationCallback, null);
serverSslStream.AuthenticateAsClient("e.mail.ru");
var request =
$"GET https://e.mail.ru/messages/inbox/?back=1 HTTP/1.1\r\n" +
$"Host:www.ecom.honda-eu.com:443\r\n" +
$"User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko\r\n" +
$"Accept: text/html, application/xhtml+xml, */*\r\n" +
$"Accept-Encoding: gzip, deflate\r\n" +
$"Accept-Language: ru,en-US;q=0.7,en;q=0.3\r\n" +
$"C-o-o-k-i-e: \r\n" + // (изменено чтобы цензура слово пропустила)
$"DNT: 1\r\n" +
$"\r\n";
var bytes = Encoding.ASCII.GetBytes(request);
serverSslStream.Write(bytes);
var otvet = ReadMessage(serverSslStream);
Console.ReadKey();
}
private static bool SslValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
{
return true;
}
static string ReadMessage(SslStream sslStream)
{
byte[] buffer = new byte[2048];
StringBuilder messageData = new StringBuilder();
int bytes = -1;
do
{
bytes = sslStream.Read(buffer, 0, buffer.Length);
Decoder decoder = Encoding.UTF8.GetDecoder();
char[] chars = new char[decoder.GetCharCount(buffer, 0, bytes)];
decoder.GetChars(buffer, 0, bytes, chars, 0);
messageData.Append(chars);
if (messageData.ToString().IndexOf("<EOF>") != -1)
{
break;
}
} while (bytes != 0);
return messageData.ToString();
}
}
Показать спойлер