/// <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(); }
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"); }
// Загрузка изображения на полученный сервер в методе 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); }
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); }
/// <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); }