Exemplo n.º 1
0
        /// <summary>
        /// Оправляет multipart/form-data на заданный url
        /// <PARAM name="url">Адрес url</PARAM>
        /// <PARAM name="pData">PostData</PARAM>
        /// </summary>
        private void SendMultipartFormdata(string url, PostData pData)
        {
            Logger.Debug(tmSettings, "smfd mt wait", false, mutLogger);
            mutAPI.WaitOne();
            Logger.Debug(tmSettings, "smfd mt success", false, mutLogger);

            HttpRequest request = CreateRequest();

            request.KeepAlive = true;

            foreach (PostDataParam param in pData.Params)
            {
                if (param.Type == PostDataParamType.Field)
                {
                    request.AddField(param.Name, param.Value);
                }
                else
                {
                    request.AddFile(param.Name, param.Value);
                }
            }

            Logger.Debug(tmSettings, "smfd post request", false, mutLogger);

            //HttpResponse response = request.Send(HttpMethod.POST, new Uri(String.Format(url, botToken)));
            HttpResponse response = request.Post(String.Format(url, botToken));
            string       jsonText = response.ToString();

            response.None();
            response = null;

            Logger.Debug(tmSettings, "smfd answer to response: " + jsonText, false, mutLogger);
            TelegramAnswerMessage answer = JsonConvert.DeserializeObject <TelegramAnswerMessage>(jsonText);

            Logger.Debug(tmSettings, "smfd " + answer.ok.ToString(), false, mutLogger);

            if (!answer.ok)
            {
                Logger.Write(answer.description, true, mutLogger);
            }
            else
            {
                SaveMessageToDB(answer.message, "out");
            }

            request.Close();
            request = null;

            mutAPI.ReleaseMutex();
            Logger.Debug(tmSettings, "smfd mt release", false, mutLogger);
            GC.WaitForPendingFinalizers();
            GC.Collect();
        }
Exemplo n.º 2
0
        private void btnRegister_Click(object sender, EventArgs e)
        {
            HttpRequest http = new HttpRequest();

            http.Cookies = new CookieDictionary();
            http.AddHeader("Accept", "*/*");
            http.AddHeader("Cache-Control", "max-age=0");
            http.AddField("Host", "header.vtcgame.vn");
            http.AddField("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            http.AddHeader("Origin", "https://vtcgame.vn");
            http.AddHeader("Referer", "https://vtcgame.vn/");
            http.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0");

            string cookie = "ASP.NET_SessionId=dvjygvepazikr0byvqzu1umk; _ga=GA1.2.292676208.1613259212; _gid=GA1.2.366696503.1613259212; _fbp=fb.1.1613259212577.1418830481";

            AddCookie(http, cookie);

            var username = EncodeBase64(txtTendangnhap.Text + "1");
            var password = EncodeBase64(txtPassword.Text);

            var getTokenUrl = "https://header.vtcgame.vn/home/commonv2";
            var stringRegex = @"(?<=key"" type=""hidden"" value="").*?(?="")";

            var token = GetToken(http, getTokenUrl, stringRegex);

            var            imageByteArray = http.Get("https://header.vtcgame.vn//CaptchaImage.ashx?ss=0.18794111666105817&w=60&h=40").ToMemoryStream().ToArray();
            frmEnterCapcha frm            = new frmEnterCapcha(imageByteArray);

            frm.ShowDialog();
            string captcha = frm.Captcha;

            http.AddHeader("Referer", "https://vtcgame.vn/GameServer/GameDetail?GameId=98");
            var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
            var registerUrl = "https://header.vtcgame.vn//Handler/Process.ashx?act=Register";

            var data   = $@"conten={username}&value={password}&value2={password}&capt={captcha}&hidverify=&dongy=true&key={token}&ServiceId=&LinkGen=";
            var result = http.Post(registerUrl, data, contentType).ToString();

            WriteHtmlFile(result, "resultregister.html");
        }
Exemplo n.º 3
0
        // Загрузка изображения на полученный сервер в методе GetUrlServer
        public string LoadPhoto(string url, string dirPhoto)
        {
            string Answer = string.Empty;

            using (var load = new HttpRequest())
            {
                load.AddField("photo").AddFile("file", dirPhoto);

                Answer = load.Post(url).ToString();
            }

            return(Answer);
        }
Exemplo n.º 4
0
        private string PerformCommand(string command, string json = "")
        {
            sign = MangoSignHelper.GetSign(vpbx_api_key, json, vpbx_api_salt);
            string result = String.Empty;

            using (var request = new HttpRequest(baseURL)) {
                request.AddField("vpbx_api_key", vpbx_api_key, Encoding.UTF8);
                request.AddField("sign", sign, Encoding.UTF8);

                if (String.IsNullOrWhiteSpace(json))
                {
                    request.AddField("json", "{}", Encoding.UTF8);
                }
                else
                {
                    request.AddField("json", json, Encoding.UTF8);
                }

                result = request.Post(command).ToString();
            }
            logger.Debug($"Ответ команды:{result}");
            return(result);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Отправляет на антигейт массив данных изображения в формате PNG.
        ///
        /// </summary>
        /// <param name="ImageData">Массив данных изображения (PNG)</param>
        /// <param name="ct">CancellationToken</param>
        /// <returns>
        /// Разгаданный текст капчи или [null] в случае отсутствия свободных слотов или превышения времени ожидания
        /// </returns>
        public async Task <string> GetAnswer(byte[] ImageData, CancellationToken ct)
        {
            if (ImageData == null || ImageData.Length == 0)
            {
                throw new ArgumentException("Image data array is empty");
            }
            var num = SlotRetry;

            CaptchaId = null;
            string str;
            var    req = new HttpRequest();

            while (true)
            {
                if (ct.IsCancellationRequested)
                {
                    ct.ThrowIfCancellationRequested();
                }

                req.AddField("method", "post");
                req.AddField("key", Key);
                req.AddField("soft_id", "1151");
                req.AddFile("file", "image.jpg", "image/jpeg", ImageData);
                if (Parameters.Count > 0)
                {
                    foreach (Param obj in Parameters.GetParams())
                    {
                        req.AddField(obj.Key, obj.Value, Encoding.UTF8);
                    }
                }

                try
                {
                    str = req.Post($"http://{ServiceProvider}/in.php").ToString();
                }
                catch
                {
                    throw new WebException("Antigate server did not respond");
                }
                if (str.Equals("ERROR_NO_SLOT_AVAILABLE", StringComparison.InvariantCultureIgnoreCase))
                {
                    if (num - 1 > 0)
                    {
                        --num;
                        Thread.Sleep(SlotRetryDelay);
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    goto label_22;
                }
            }
            throw new WebException(str);

label_22:
            if (str.StartsWith("ERROR_", StringComparison.InvariantCultureIgnoreCase))
            {
                throw new AntigateErrorException(
                          (AntigateError)Enum.Parse(typeof(AntigateError), str.Substring(6)));
            }
            try
            {
                CaptchaId = str.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)[1];
            }
            catch
            {
                throw new WebException("Antigate answer is in unknown format or malformed");
            }
            for (var index = 0; index < CheckRetryCount; ++index)
            {
                await Task.Delay(CheckDelay, ct);

                str = req.Get($"http://{ServiceProvider}/res.php?key={Key}&action=get&id={CaptchaId}").ToString();
                if (str.Equals("CAPCHA_NOT_READY", StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }

                if (str.StartsWith("ERROR_", StringComparison.InvariantCultureIgnoreCase))
                {
                    throw new AntigateErrorException(
                              (AntigateError)Enum.Parse(typeof(AntigateError), str.Substring(6)));
                }
                var strArray = str.Split('|');
                if (strArray[0].Equals("OK", StringComparison.InvariantCultureIgnoreCase))
                {
                    return(strArray[1]);
                }
            }
            return(null);
        }