/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { CreateTaskResponse response = new CreateTaskResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("taskArn", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.TaskArn = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("taskId", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.TaskId = unmarshaller.Unmarshall(context); continue; } } return(response); }
private static async Task <GetTaskResponse> GetCaptchaTask(AntiCaptchaKey antiCaptchaKey, CreateTaskResponse task) { try { GetTaskRequest request = new GetTaskRequest(antiCaptchaKey.ClientKey, task.TaskId); string requestJson = JsonConvert.SerializeObject(request); using (HttpRequestMessage httpRequest = new HttpRequestMessage(HttpMethod.Post, AntiCaptchaEndpoints.GetTaskUrl)) { httpRequest.Content = new StringContent(requestJson, Encoding.UTF8, "application/json"); using (HttpResponseMessage httpResponse = await AntiCaptchaGlobals.HttpClient.SendAsync(httpRequest) ) { httpResponse.EnsureSuccessStatusCode(); string value = await httpResponse.Content.ReadAsStringAsync(); GetTaskResponse ret = JsonConvert.DeserializeObject <GetTaskResponse>(value); return(ret); } } } catch { return(null); } }
public void CreateTask() { var taskJson = GetPostData(); var jsonPostData = new JObject(); jsonPostData["clientKey"] = ClientKey; jsonPostData["task"] = taskJson ?? throw new Exception("A task preparing error."); dynamic postResult = JsonPostRequest(ApiMethods.CreateTask, jsonPostData); if (postResult == null || postResult.Equals(false)) { throw new Exception("API error"); } var response = new CreateTaskResponse(postResult); if (!response.ErrorId.Equals(0)) { throw new Exception(response.ErrorDescription); } if (response.TaskId == null) { throw new Exception("Failed to parse taskId"); } TaskId = (int)response.TaskId; }
public CreateTaskResponse CreateTask(CreateTaskRequest task, UnitOfWork context) { var response = new CreateTaskResponse { Id = context.Tasks.AddItem(_mapper.Map <Task>(task)) }; return(response); }
public static CreateTaskResponse Unmarshall(UnmarshallerContext context) { CreateTaskResponse createTaskResponse = new CreateTaskResponse(); createTaskResponse.HttpResponse = context.HttpResponse; createTaskResponse.Code = context.StringValue("CreateTask.Code"); createTaskResponse.Message = context.StringValue("CreateTask.Message"); createTaskResponse.Success = context.StringValue("CreateTask.Success"); createTaskResponse.RequestId = context.StringValue("CreateTask.RequestId"); return(createTaskResponse); }
public bool CreateTask() { var taskJson = GetPostData(); if (taskJson == null) { DebugHelper.Out(DebugHelper.Severity.Error, "A task preparing error."); return(false); } var jsonPostData = new JObject { ["clientKey"] = ClientKey, ["task"] = taskJson }; DebugHelper.Out(DebugHelper.Severity.Info, "Connecting to " + _host); dynamic postResult = JsonPostRequest(ApiMethod.CreateTask, jsonPostData); if (postResult?.Equals(false) != false) { DebugHelper.Out(DebugHelper.Severity.Error, "API error"); return(false); } var response = new CreateTaskResponse(postResult); if (!response.ErrorId.Equals(0)) { ErrorMessage = response.ErrorDescription; DebugHelper.Out( DebugHelper.Severity.Error , "API error " + response.ErrorId + ": " + response.ErrorDescription); return(false); } if (response.TaskId == null) { DebugHelper.JsonFieldParseError("taskId", postResult); return(false); } TaskId = (int)response.TaskId; DebugHelper.Out(DebugHelper.Severity.Success, "Task ID: " + TaskId); return(true); }
public bool CreateTask() { var taskJson = GetPostData(); if (taskJson == null) { DebugHelper.Out("A task preparing error.", DebugHelper.Type.Error); return(false); } var jsonPostData = new JObject(); jsonPostData["clientKey"] = ClientKey; jsonPostData["task"] = taskJson; DebugHelper.Out("Connecting to " + Host, DebugHelper.Type.Info); dynamic postResult = JsonPostRequest(ApiMethod.CreateTask, jsonPostData); if (postResult == null || postResult.Equals(false)) { DebugHelper.Out("API error", DebugHelper.Type.Error); return(false); } var response = new CreateTaskResponse(postResult); if (!response.ErrorId.Equals(0)) { ErrorMessage = response.ErrorDescription; DebugHelper.Out( "API error" + response.ErrorId + ": " + response.ErrorDescription, DebugHelper.Type.Error ); return(false); } if (response.TaskId == null) { DebugHelper.JsonFieldParseError("taskId", postResult); return(false); } TaskId = (int)response.TaskId; DebugHelper.Out("Task ID: " + TaskId, DebugHelper.Type.Success); return(true); }
/// <inheritdoc /> public override string SolveRecaptcha(string siteKey, string siteUrl) { // Create task HttpRequest request = new HttpRequest(); request.AddHeader(HttpHeader.Accept, "application/json"); var content = new Extreme.Net.MultipartContent(BlockRequest.GenerateMultipartBoundary()); content.Add(new Extreme.Net.StringContent(User), "username"); content.Add(new Extreme.Net.StringContent(Pass), "password"); content.Add(new Extreme.Net.StringContent("4"), "type"); content.Add(new Extreme.Net.StringContent(JsonConvert.SerializeObject(new CreateRecaptchaTaskRequest(siteUrl, siteKey))), "token_params"); var response = request.Post("http://api.dbcapi.me/api/captcha", content).ToString(); var split = response.Split('&'); var status = int.Parse(split[0].Split('=')[1]); var id = split[1].Split('=')[1]; if (status == 255) { throw new Exception(response); } TaskId = id; Status = CaptchaStatus.Processing; // Check if task has been completed DateTime start = DateTime.Now; while (Status == CaptchaStatus.Processing && (DateTime.Now - start).TotalSeconds < Timeout) { Thread.Sleep(5000); HttpRequest gRequest = new HttpRequest(); gRequest.AddHeader(HttpHeader.Accept, "application/json"); HttpResponse gResponse = gRequest.Get($"http://api.dbcapi.me/api/captcha/{TaskId}"); var resp = gResponse.ToString(); CreateTaskResponse gtrr = JsonConvert.DeserializeObject <CreateTaskResponse>(resp); if (gtrr == null) { continue; } if (!gtrr.is_correct) { throw new Exception("No answer could be found"); } if (gtrr.text != "") { Status = CaptchaStatus.Completed; return(gtrr.text); } } throw new TimeoutException(); }
public HttpResponseMessage CreateTask(CreateTaskRequest request, int todolistid) { var response = new CreateTaskResponse(); if (_sessionManager.IsActive(request.SessionId)) { _taskManager.AddTaskToDatabase(request.Task); return(Request.CreateResponse(HttpStatusCode.OK, response)); } else { return(Request.CreateResponse(HttpStatusCode.Conflict, response)); } }
public CreateTaskResponse Add(CreateTaskRequest request) { if (request == null) { throw new ArgumentNullException(); } TaskItem record = new TaskItem(); record.Name = request.Name; record.IsComplete = request.IsComplete; _taskItemRepository.Add(record); CreateTaskResponse response = new CreateTaskResponse(); response.Id = record.Id; return(response); }
/// <inheritdoc /> public override string SolveCaptcha(Bitmap bitmap) { // Create task using (CWebClient client = new CWebClient()) { if (Timeout > 0) { client.Timeout = Timeout; } client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); var response = client.UploadString("https://api.anti-captcha.com/createTask", JsonConvert.SerializeObject(new CreateCaptchaTaskRequest(ApiKey, GetBase64(bitmap, ImageFormat.Png)))); CreateTaskResponse ctr = JsonConvert.DeserializeObject <CreateTaskResponse>(response); if (ctr.errorId > 0) { throw new Exception(ctr.errorCode); } TaskId = ctr.taskId; Status = CaptchaStatus.Processing; // Check if task has been completed DateTime start = DateTime.Now; while (Status == CaptchaStatus.Processing && (DateTime.Now - start).TotalSeconds < Timeout) { Thread.Sleep(5000); client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); response = client.UploadString("https://api.anti-captcha.com/getTaskResult", JsonConvert.SerializeObject(new GetTaskResultRequest(ApiKey, TaskId))); GetTaskResultCaptchaResponse gtrr = JsonConvert.DeserializeObject <GetTaskResultCaptchaResponse>(response); if (gtrr.errorId > 0) { throw new Exception(gtrr.errorCode); } if (gtrr.status == "ready") { Status = CaptchaStatus.Completed; return(gtrr.solution.text); } } throw new TimeoutException(); } }
public async Task <GetTaskResponse> GetSolvedCaptcha(ICreateTask createTask) { AntiCaptchaQueueStats.DecrementWaiting(); CreateTaskResponse createTaskResponse = await CreateCaptchaTask(this, createTask); lock (_taskLockObject) { _tasks.Add(createTaskResponse); } if (createTaskResponse.ErrorId > 0) { throw new AntiCaptchaException($"{createTaskResponse.ErrorCode}:{createTaskResponse.ErrorDescription}"); } while (createTaskResponse.TaskResponse == null || createTaskResponse.TaskResponse.Status.Equals("processing")) { await Task.Delay(10000); createTaskResponse.TaskResponse = await GetCaptchaTask(this, createTaskResponse); if (createTaskResponse.TaskResponse == null || createTaskResponse.TaskResponse.ErrorId <= 0) { continue; } createTaskResponse.TaskResponse.Status = "error"; throw new AntiCaptchaException( $"{createTaskResponse.TaskResponse.ErrorCode}:{createTaskResponse.TaskResponse.ErrorDescription}"); } return(createTaskResponse.TaskResponse); }
/// <inheritdoc /> public override string SolveCaptcha(Bitmap bitmap) { // Create task HttpRequest request = new HttpRequest(); request.AddHeader(HttpHeader.Accept, "application/json"); Extreme.Net.MultipartContent content = new Extreme.Net.MultipartContent(Request.GenerateMultipartBoundary()); content.Add(new Extreme.Net.StringContent(User), "username"); content.Add(new Extreme.Net.StringContent(Pass), "password"); content.Add(new Extreme.Net.StringContent($"base64:{GetBase64(bitmap, ImageFormat.Jpeg)}"), "captchafile"); var response = request.Post("http://api.dbcapi.me/api/captcha", content).ToString(); // Sometimes the DBC API replies without JSON even when the Accept header is set correctly, so we must perform a check if (response.Trim().StartsWith("{")) { var taskResponse = JsonConvert.DeserializeObject <CreateTaskResponse>(response); if (taskResponse.status == 255) { throw new Exception(taskResponse.error); } TaskId = taskResponse.captcha; } else // Not JSON { var split = response.Split('&'); var status = int.Parse(split[0].Split('=')[1]); var id = split[1].Split('=')[1]; if (status == 255) { throw new Exception(response); } TaskId = id; } Status = CaptchaStatus.Processing; // Check if task has been completed DateTime start = DateTime.Now; while (Status == CaptchaStatus.Processing && (DateTime.Now - start).TotalSeconds < Timeout) { Thread.Sleep(5000); HttpRequest gRequest = new HttpRequest(); gRequest.AddHeader(HttpHeader.Accept, "application/json"); HttpResponse gResponse = gRequest.Get($"http://api.dbcapi.me/api/captcha/{TaskId}"); var resp = gResponse.ToString(); CreateTaskResponse gtrr = JsonConvert.DeserializeObject <CreateTaskResponse>(resp); if (gtrr == null) { continue; } if (!gtrr.is_correct) { throw new Exception("No answer could be found"); } if (gtrr.text != string.Empty) { Status = CaptchaStatus.Completed; return(gtrr.text); } } throw new TimeoutException(); }