Ejemplo n.º 1
0
        public void 结合FromRawText和Data发送复杂的HTTP请求()
        {
            // 可以从 Fiddler 抓到所需要请求头,去掉:数据部分
            string request = @"
POST http://www.fish-web-demo.com/test1.aspx HTTP/1.1
Host: www.fish-web-demo.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Referer: http://www.fish-web-demo.com/Pages/Demo/TestAutoFindAction.htm
Cookie: hasplmlang=_int_; LoginBy=productKey; PageStyle=Style2;
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
";

            // 1,根据一段长文本 快速设置 URL, method, headers
            HttpOption httpOption = HttpOption.FromRawText(request);

            // 2,设置提交数据与格式
            httpOption.Format = SerializeFormat.Form;
            httpOption.Data   = new { id = 2, name = "aaaa", time = DateTime.Now };

            // 3,发送请求,获取结果
            string result = httpOption.GetResult();
        }
Ejemplo n.º 2
0
        public void Execute(TaskContext context, TaskAction action)
        {
            string[] files = Directory.GetFiles(context.TempPath, "*.*", SearchOption.TopDirectoryOnly);
            if (files.Length == 0)
            {
                return;
            }


            // 获取所有日志文件,仅包含:xml, txt
            string[] logFiles = (from f in files
                                 where f.EndsWith(".xml", StringComparison.OrdinalIgnoreCase) ||
                                 f.EndsWith(".txt", StringComparison.OrdinalIgnoreCase)
                                 select f).ToArray();

            string zipFile = context.Branch.Id.ToString() + "__log.zip";
            string zipPath = Path.Combine(context.TempPath, zipFile);

            // 创建压缩包文件
            ZipHelper.CreateZipFile(zipPath, logFiles);

            // 上传日志
            string     website = ConfigurationManager.AppSettings["ServiceWebsite"];
            HttpOption option  = new HttpOption {
                Method = "POST",
                Url    = website.TrimEnd('/') + "/ajax/scan/Upload/UploadClientLog.ppx",
                Data   = new { logFile = new FileInfo(zipPath), flag = context.Branch.Id }
            };

            option.GetResult();

            context.ConsoleWrite("UploadClientLogTask OK");
        }
Ejemplo n.º 3
0
        private static byte[] GetClientZip()
        {
            string     website = ConfigurationManager.AppSettings["ServiceWebsite"];
            HttpOption option  = new HttpOption {
                Method = "GET",
                Url    = website.TrimEnd('/') + "/ajax/scan/File/GetClientZip.ppx"
            };

            return(option.GetResult <byte[]>());
        }
Ejemplo n.º 4
0
        private static string GetServerAppVersion()
        {
            string     website = ConfigurationManager.AppSettings["ServiceWebsite"];
            HttpOption option  = new HttpOption {
                Method = "GET",
                Url    = website.TrimEnd('/') + "/ajax/scan/File/GetAppVersion.ppx"
            };

            return(option.GetResult());
        }
Ejemplo n.º 5
0
        private static void GetAppSettings()
        {
            string     website = ConfigurationManager.AppSettings["ServiceWebsite"];
            HttpOption option  = new HttpOption {
                Method = "GET",
                Url    = website.TrimEnd('/') + "/ajax/scan/File/GetAppSettings.ppx"
            };
            string text = option.GetResult();

            AppSettings = System.Web.HttpUtility.ParseQueryString(text);
        }
Ejemplo n.º 6
0
        internal static void SendData(object data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            HttpOption httpOption = CreateHttpOption(data);

            Retry retry = Retry.Create(s_retryCount, s_retryWaitMillisecond);

            httpOption.GetResult(retry);
        }
Ejemplo n.º 7
0
        private static void DownloadFile(string filename)
        {
            string website = ConfigurationManager.AppSettings["ServiceWebsite"];

            HttpOption option = new HttpOption {
                Method = "POST",
                Url    = website.TrimEnd('/') + "/ajax/scan/File/GetFile.ppx",
                Data   = new { filename = filename }
            };
            string text = option.GetResult();

            s_configFileTextDict[filename] = text;
        }
 static void SendRequest()
 {
     try {
         HttpOption option = new HttpOption {
             Url = "http://localhost:50456/hello/ClownFish-HttpServer/demo-ccc/Now.aspx"
                   //Url = "http://localhost:50456/hello/ClownFish-HttpServer/demo-ccc/Now.aspx?sleepMillisecondsTimeout=90"
         };
         string response = option.GetResult();
     }
     catch (RemoteWebException webException) {
         Console.WriteLine(webException.ResponseText);
     }
     catch (Exception ex) {
         Console.WriteLine(ex.Message);
     }
 }
Ejemplo n.º 9
0
        private static void DownloadTaskFile(int id)
        {
            string filename = null;
            string website  = ConfigurationManager.AppSettings["ServiceWebsite"];

            HttpOption option = new HttpOption {
                Method = "POST",
                Url    = website.TrimEnd('/') + "/ajax/scan/File/GetTaskFile.ppx",
                Data   = new { id = id }
            };

            option.ReadResponseAction = x => filename = System.Web.HttpUtility.UrlDecode(x.GetResponseHeader("x-filename"));
            string text = option.GetResult();

            s_configFileTextDict[filename] = text;
        }
Ejemplo n.º 10
0
        public void Execute(TaskContext context, TaskAction action)
        {
            string website = ConfigurationManager.AppSettings["ServiceWebsite"];

            if (string.IsNullOrEmpty(website))
            {
                throw new ConfigurationErrorsException("ServiceWebsite没有配置。");
            }

            TotalResult totalResult = context.TotalResult;

            // 按业务单元和扫描类别分组小计
            //CalculateSubTotal(totalResult);
            context.ConsoleWrite("ExecSubTotalResult OK");
            context.ConsoleWrite("\r\n任务结束时间:" + DateTime.Now.ToTimeString());

            // 获取控件台的所有输出内容
            totalResult.ConsoleText = context.OutputText;


            // 为了防止提交的数据过大,所以采用压缩的方式提交数据(大约可压缩10倍),
            string json = totalResult.ToJson();
            string data = CompressHelper.GzipCompress(json);


            HttpOption option = new HttpOption {
                Method = "POST",
                Url    = website.TrimEnd('/') + "/ajax/scan/Upload/UploadResult.ppx",
                Data   = new { base64 = data, branchId = context.Branch.Id }
            };

            option.Headers.Add("authentication-key", ConfigurationManager.AppSettings["authentication-key"]);
            option.Headers.Add("app-version", SpecChecker.CoreLibrary.Config.JobManager.AppVersion);
            string responseText = option.GetResult();

            if (responseText == "200")
            {
                context.ConsoleWrite("UploadResultTask OK");
            }
            else
            {
                context.ConsoleWrite("\r\n上传结果出现异常:##################");
                context.ConsoleWrite(responseText);
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 发送HTTP请求
        /// </summary>
        /// <param name="data"></param>
        public virtual void SendData(object data)
        {
            if (data == null)
            {
                return;
            }

            HttpOption httpOption = CreateHttpOption(data);

            if (httpOption == null)
            {
                return;
            }

            Retry retry = Retry.Create(_retryCount, _retryWaitMillisecond);

            httpOption.GetResult(retry);
        }
Ejemplo n.º 12
0
        public void 常规用法介绍()
        {
            // 先构造一个HttpOption对象
            HttpOption httpOption = new HttpOption {
                Method = "POST",
                Url    = "http://www.fish-web-demo.com/test1.aspx",
                Header = new { X_a = "a1", X_b = "b2" },
                Format = SerializeFormat.Form,
                Data   = new { id = 2, name = "abc" }
            };


            // 下面演示 6 种获取结果的方式

            // 1,以文本形式获取服务端的返回结果
            string text = httpOption.GetResult();

            // 2,以二进制形式获取服务端的返回结果
            byte[] bin = httpOption.GetResult <byte[]>();

            // 3,服务端返回 json / xml,可以直接反序列化结果
            Product product = httpOption.GetResult <Product>();

            // 4,以文本形式获取服务端的返回结果,并需要访问响应头
            HttpResult <string> httpResult1 = httpOption.GetResult <HttpResult <string> >();
            string text2 = httpResult1.Result;

            // 5,以二进制形式获取服务端的返回结果,并需要访问响应头
            HttpResult <byte[]> httpResult2 = httpOption.GetResult <HttpResult <byte[]> >();

            byte[] bin2 = httpResult2.Result;

            // 6,服务端返回 json / xml,结果反序列化,并需要访问响应头
            HttpResult <Product> httpResult3 = httpOption.GetResult <HttpResult <Product> >();
            Product product2 = httpResult3.Result;


            // 读取响应头
            string header = httpResult1.Headers["name"];
        }