BeetleX.Http.Clients访问https服务

        最近在做数据分析平台,那在做这个产品的时最需要的自然是测试数据,自己去构建行业测试数据比较麻烦,看到有同行产品的演示数据当然不能错过。由于采集过程中使用到BeetleX.Http.Clients去抓取第三方的Https接口数据,所以顺便记录一下BeetleX.Http.Clients使用的方法。

        首先构建一个控制台程序,然后Nuget引用BeetleX.Http.Clients组件,引用后就可以干活了,组件提供一个HttpClient对象可以很方便的对webapi进行访问,即使是调用https也无须添加任何配置即可完成。

        接下来取一下https://console.bce.xxxx.com/sugar/的演示产品数据。

BeetleX.Http.Clients.HttpJsonClient client = new BeetleX.Http.Clients.HttpJsonClient("https://sugar.bce.baidu.com/");
client.SetHeader("csrf-token", "xDgdnfJ8-NhQZ0xWD8ZsjBrs1pTAGyp-CJ6U");
client.SetHeader("cookie", "BIDUPSID=127E2C6CE0EBA549524FAA4EE738C5F7; PSTM=1559696211; BAIDUID=D1235FD0F3793CD52877199489385314:FG=1; MCITY=-257%3A; H_WISE_SIDS=107320_110085_127969_131423_132549_144966_154213_155931_164108_164869_165135_166148_167086_167296_168030_168490_168542_169061_169307_169708_169882_170149_170155_170221_170244_170355_170474_170579_170583_170590_170607_170762_170810_170817_170873_170957_171216_171223_171234_171523_171584_171622_171816_171837_171850_171989_172128_172247_172496_172679; CAMPAIGN_TRACK=cp%3Aotheronline-media%7Cpf%3Apc%7Cpp%3Abaiduyunduanxin-huodong-21kainianshengdian-laoyonghu%7Cpu%3Aduanxin%7Cci%3A2021knsd%7Ckw%3A10074020; CAMPAIGN_TRACK_TIME=2021-03-29+14%3A18%3A33; sugarbisid=s%3Ao_q8jIFFbRjcEf8-x-CCXG2yL_pZdEnt.948a4PF6nEojy%2FSYM0Y05l2f8%2Br%2F6dpTc9NCMuOQj78; sugar-company=scp_1013e-2xjcwe8b-oqpvmj; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BAIDUID_BFESS=AFCE5C81652686EBDB40FA33174550AB:FG=1; __yjs_duid=1_e8da08a67d6144100f2ea8eb59d6178f1617255570813; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; delPer=0; PSINO=6; ab_sr=1.0.0_YjQyYWZhZWE2Yjc4ZThlNWY1MWYwMDNlMTc2MmEyNDc2ZTI4ZjFmMGYxMDg0NTVjZTFiYWI4ZDg2MzVlM2RlOGQ5YTM1NTE3ZDJjNzk1NDUxYTExYjYzODI1YWEyYTAwOTNkMmFhYjg4NDQwNmU5NmQwYjRiMzk0Zjc0MDBiMzc=; H_PS_PSSID=33797_33639_33740_33272_33689_33760_33675_33392_33624_33163_26350_22159; BA_HECTOR=a4a5000g8ka1a081ov1g6damo0q; __bce-console-referrer__=; BCE_MONITOR_TRACK_SESSION_ID=161734115059605fe; Hm_lvt_28a17f66627d87f1d046eae152a1c93d=1614946024,1615288720,1616998877,1617341151; BDUSS=TI2b01Qa1ZQWTV3dzhnV0JDWWVtbTdHNGV-bzdCRE95LXdibmRhN0VUcnBONDVnSUFBQUFBJCQAAAAAAAAAAAEAAADrubswZmFuaGVucnlmYW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOmqZmDpqmZgW; BDUSS_BFESS=TI2b01Qa1ZQWTV3dzhnV0JDWWVtbTdHNGV-bzdCRE95LXdibmRhN0VUcnBONDVnSUFBQUFBJCQAAAAAAAAAAAEAAADrubswZmFuaGVucnlmYW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOmqZmDpqmZgW; x-bce-login-redirect-url=https%3A%2F%2Fconsole.bce.baidu.com%2Fcdn%2F%3F_%3D1611315494638#/cdn/list; bce-login-type=PASSPORT; bce-passport-stoken=d32f2a3af24c12142043dbb85ccd70f44dac7b8696f4af61b520a7d98b0654bc; bce-auth-type=PASSPORT; bce-sessionid=001f9c8d3c3652c440b8ec3194c735a27ea; bce-ctl-client-cookies=\"BDUSS, bce - passport - stoken, bce - device - cuid, bce - device - token, BAIDUID\"; bce-ctl-client-parameters=brt; bce-ctl-client-headers=\"\"; bce-user-info=\"2021 - 04 - 02T13: 26:03Z | ad8d8a4a97be5a3da27db213fbdd14f7\"; bce-login-display-name=fanhenryfan; bce-userbind-source=PASSPORT; bce-session=0cb2dc02d3454eb6aaa545892e3e29d034da1482052a4e2cab27863d4f43d8a4|2d53879befa5dddebb239f0b4fe7e8f9; bce-ctl-sessionmfa-cookie=bce-session; bce-login-expire-time=\"2021 - 04 - 02T05: 56:03Z | 802ff95a53ab810c6938f59a506512d3\"; bce-locale=zh-cn; BCE_MONITOR_TRACK_SESSION_ID=161734115059605fe; BAIDU_CLOUD_TRACK_PATH=https%3A%2F%2Fcloud.baidu.com%2Fproduct%2Fsugar.html; Hm_lpvt_28a17f66627d87f1d046eae152a1c93d=1617341420; _csrf=EIyOZMiPySNSeutEtga6VE9j; Hm_lvt_0369a83cfe6c3d97357eea08cc40e92f=1616998914,1617341442; Hm_lpvt_0369a83cfe6c3d97357eea08cc40e92f=1617341442");
client.SetHeader("referer", "https://sugar.bce.xxxx.com/group/first/manage/dbPreview?database=d_1013e-akrxglq5-kej8q1&__scp__=scp_1013e-2xjcwe8b-oqpvmj");
List<Row> datas = new List<Row>();
for (int i = 1; i <= 980; i++)
{client.SetBody(new { page = i, perPage = 10 });var result = await client.Post("/api/group/g_1013e-1x6fmdc9-1pyz2x/database/d_1013e-akrxglq5-kej8q1/getTableData?table=medical_list&_replace=1");var data = ((JToken)result.Body)["data"];if (data != null){var row = data["rows"];if (row != null){var items = row.ToObject<List<Row>>();datas.AddRange(items);System.Threading.Thread.Sleep(200);}}}

由于接口的调用需要一些访问凭证信息,这些信息可以通过浏览器访问获取得到。

只需要在浏览器访问一下就可以获取到详细的cookie和token信息,把这些信息添加到http的头。配置好之后所有工作就简单多了,在调用Post后根据自己需要解释对应Body的数据即可。由于平台没做调用限制,没过几分钟900多页的数据就成功获取下来

BeetleX

开源跨平台通讯框架(支持TLS)
提供高性能服务和大数据处理解决方案

https://beetlex.io

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这一次,用数据解读玩家行为,用实力拿下预测大奖!

如今&#xff0c;大数据落地应用已十分广泛&#xff0c;除了政务、金融、医疗、旅游等传统行业外&#xff0c;在游戏行业中的应用也逐渐受人瞩目。那么&#xff0c;当大数据遇上游戏产业&#xff0c;会产生哪些变革和创新呢&#xff1f;众所周知&#xff0c;全球游戏市场规模庞…

如何在 C# 中使用隐式和显式操作符

C# 有一个鲜为人知的特性是通过定义 显式和隐式操作符 实现类型之间的转换&#xff0c;这篇文章我们将会讨论如何使用这些 显式 和 隐式 操作符。什么是显式&#xff0c;什么是隐式 隐式类型转换 它是运行时自动帮你完成的&#xff0c;言外之意就是你不需要人为干预&#xff0c…

SUSE10下配置FTP服务

SUSE10 liuux下配置FTP和SUSE9有不同之处&#xff0c;大家请注意。下面为SUSE10下ftp服务配置具体步骤。 Linux 系统安装完成后&#xff0c;默认不会开启FTP 服务&#xff0c;需要在yast界面下进行手动启动: 说明&#xff1a;如果未安装FTP 包&#xff0c;则需要先行安装FTP 软…

java gzip 解压文件_Java实现文件压缩与解压[zip格式,gzip格式]

原文&#xff1a;http://www.cnblogs.com/visec479/p/4112881.html#3069573Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术&#xff0c;可以对单个文件和任意级联文件夹进行压缩和解压&#xff0c;对于一些初学者来说是个很不错的实例。zip扮演着归档和压缩两…

java bouncycastle_java – 使用bouncycastle进行签名和验证签名的正确方法

我正在使用bcmail-jdk16-1.46.jar和bcprov-jdk16-1.46.jar(Bouncycastle库)来签名一个字符串&#xff0c;然后验证签名。这是我的代码来签字符串&#xff1a;package my.package;import java.io.FileInputStream;import java.security.Key;import java.security.KeyStore;impor…

来看一场 AI 重建的 3D 全息世界杯比赛!

世界杯来了&#xff01;央视名嘴白岩松调侃 “俄罗斯世界杯&#xff0c;中国除了足球队没去&#xff0c;其他的都去了”&#xff0c;这届世界杯&#xff0c;中国球迷购买球票的数量在所有国家中排名第 9&#xff0c;可见球迷对世界杯的热情。那么&#xff0c;除了准备好小龙虾在…

杨中科.NET5视频教程更新了:DI、配置系统、Logging、EF Core等

我的.NET5视频教程又更新了一些内容了&#xff0c;包含依赖注入、配置系统、日志系统以及部分Entity Framework Core的内容。Entity Framework Core还没全讲完&#xff0c;会继续更新。已经有.NET Core开发经验的朋友&#xff0c;可以直接看配置系统第4、5节&#xff0c;讲了自…

编译Linux 2.6内核

编译内核易如反掌。让人叹为观止的是&#xff0c;这实际上比编译和安装像glibc这样的系统级组伴还要简单。2.6内核提供了一套新工具&#xff0c;使编译内核更加容易&#xff0c;比早期发布的内核有了长足的进步。 2.3.1 配置内核 因为Linux源码随手可得&#xff0c;那就意味着在…

获取父线程 java_java子线程中获取父线程的threadLocal中的值

我们都知道线程本地变量表也就是ThreadLocal在我们做线程级的数据隔离时非常好用&#xff0c;但是有时候我们会想如何让子线程获取到父线程的ThreadLocal&#xff0c;其实在线程中除了ThreadLocal外还有InheritableThreadLocal&#xff0c;顾名思义&#xff0c;可继承的线程变量…

源码分享,送你一份Google Python class源码

几年前&#xff0c;Google推出Python课堂。Google Python课堂:https://developers.google.com/edu/python/小编也整理了一下Google Python课堂的源码&#xff0c;里面有四个例子。logpuzzle这个例子主要是利用urllib模块做一个图片拼接的小游戏,主要是从一大堆的网页里面解析分…

用YARP当网关

Yarp是微软开源的一个用.net实现的反向代理工具包&#xff0c;github库就叫reverse-proxy&#xff08;反向代理&#xff09;&#xff08;吐槽一下微软起名字233333&#xff09;nuget包preview9之前都叫Microsoft.ReverseProxy&#xff0c;preview10变成Yarp.ReverseProxy了放上…

nginx 反向代理+ip智能解析

ocation / { if ($request_uri ~ ^/refresh.do$) { proxy_pass http://edtnew; break; 一 } if ($request_method POST) { proxy_pass http://edtold; break; 二 …

yum java 1.7_centos通过yum安装jdk1.7或1.8

今天安装elasticsearch的时候提示which: no1、 检查系统是否自带有jdk[rootnetpc.com.cn software]# rpm -qa |grep java[rootnetpc.com.cn software]# rpm -qa |grep jdk[rootnetpc.com.cn software]# rpm -qa |grep gcj如果有信息输出则需要卸载掉原来的jdk版本&#xff0c;用…

从生物神经网络到人工神经网络

如今提及人工智能&#xff0c;大家期待的一定是某种可以“学习”的方法&#xff0c;这种方法使用数学模型从数据中获取模式的某种表示。在众多“学习”方法中&#xff0c;获得最多关注&#xff0c;承载最多期望的非“神经网络”莫属。既然我们将这种数学方法称作神经网络&#…

很遗憾,我们正在逐渐丧失专注阅读的能力

这是头哥侃码的第238篇原创最近生活没什么规律&#xff0c;睡得晚&#xff0c;起得早&#xff0c;似乎除了工作之外&#xff0c;其余所有的节奏都有点乱了。前几天去体检&#xff0c;没想到像我这样的 “老司机”&#xff0c;居然会忘记 “要空腹” 的规定&#xff0c;愣是在体…

socket案例一

编写一个网络应用程序&#xff0c;有客户端与服务器端&#xff1b;当客户端向服务器端发送请求时&#xff0c;客户端输出服务器端返回的字符串。 回顾下socket的开发步骤&#xff1a; 1) 建立Socket连接 2) 获得输入/输出流 3&#xff09;读/写数据 4) 关闭输入/输出流 5) 关闭…

java成员变量垃圾回收_JAVA 对象被垃圾回收后其成员变量可用吗? | 学步园

我们知道JVM中一个对象实例超出作用域或无引用的时候会被垃圾回收&#xff0c;那么他被垃圾回收后&#xff0c;依赖其成员变量的其他实例是否还能正常使用呢&#xff1f;经过测试后发现即使一个实例被垃圾回收&#xff0c;如果他内部的数据被其他对象使用&#xff0c;是不受影响…

陶哲轩的10岁与30岁

Terence Tao&#xff08;陶哲轩&#xff09;&#xff0c;1975年7月17日出生于澳大利亚Adelaide&#xff08;阿德莱德&#xff09;。本讲话作于1985年上半年&#xff0c;即陶哲轩尚未满10周岁时所作&#xff0c;一个稚气儿童&#xff0c;给大学生和教授们作报告&#xff0c;少见…

NET问答: 重写了 Equals,还有必要重写 GetHashCode 吗?

咨询区 David Basarab&#xff1a;直入主题&#xff0c;参考如下代码&#xff1a;public class Foo {public int FooId { get; set; }public string FooName { get; set; }public override bool Equals(object obj){Foo fooItem obj as Foo;if (fooItem null) {return false;…

【转载】DataKeyNames,DataKeys 用法浅谈

原文地址&#xff1a;http://www.cnblogs.com/amos/archive/2010/07/16/1778796.htmlDataKeyNames作为GridView中的一个属性&#xff0c;我们可以利用这个属性结合DataKeys方便的访问GridView中每个字段的值。先说怎么用DataKeyNames可以直接在GridView属性中设置&#xff0c;多…