public ScreenImageUploadResponse UploadFileToSaber(string filePath, int uploadType = 0) { string url = conf.UploadRobotScreenUrl; CaptchaImageUploadRequest req = new CaptchaImageUploadRequest(); req.machineCode = robot.GetMachineCode(); req.token = "devJustTest"; req.uid = KK.GetFileNameNoSuffix(filePath); req.timestamp = KK.CurrentMills(); req.from = "test"; req.uploadType = uploadType; int httpStatus; DataResult <ScreenImageUploadResponse> dr = HttpClients .PostWithFiles <DataResult <ScreenImageUploadResponse> >(url, req, new List <string> { filePath }, out httpStatus); logger.InfoFormat("upload file#{0}, result is {1}", req.uid, Jsons.ToJson(dr)); return(DataResults.IsOK(dr) ? dr.Data : null); }
/// <summary> /// 循环询问验证码图片的答案 /// </summary> private void LoopInquiryCaptchaAnswer() { while (isInquiryWork) { long ss = KK.CurrentMills(); try { var taskContext = CaptchaTaskContext.me; long s1 = KK.CurrentMills(); if (CaptchaTaskContext.me.IsAllImagesAnswered()) { KK.Sleep(30); continue; } var images = new List <CaptchaAnswerImage>(taskContext.GetImagesOfAwaitAnswer()); logger.DebugFormat("inquiry answer, image size is {0}. First Uuid is {1}", images.Count, images[0].Uuid); foreach (var img in images) { if (img == null) { continue; } if (img.Answer == null || img.Answer.Length == 0) { var req = KK.CreateImageAnswerRequest(img.Uuid); DataResult <CaptchaImageAnswerResponse> dr = HttpClients .PostAsJson <DataResult <CaptchaImageAnswerResponse> >(conf.GetCaptchaAnswerUrl, req); if (DataResults.IsOK(dr) && dr.Data?.answer?.Length > 0) { img.Answer = dr.Data.answer; taskContext.PutAnswer(img.Uuid, dr.Data.answer); taskContext.RemoveAwaitImage(img.Uuid); logger.InfoFormat("GET task#{0}'s answer is {1}", img.Uuid, dr.Data.answer); // TODO:这段应该剥离出去 // TryInputAnswerAhead(img.Uuid, dr.Data.answer); captchaInputCallbackFunc?.Invoke(img); } } else { taskContext.RemoveAwaitImage(img.Uuid); // captchaInputCallbackFunc?.Invoke(img); } } } catch (Exception e) { logger.Error("LoopInquiryCaptchaAnswer error:", e); } finally { KK.Sleep(30); } } logger.InfoFormat("END LoopInquiryCaptchaAnswer."); }