session关联接口

本文介绍使用Python的requests库进行网站登录的方法,并演示如何利用Cookies维持登录状态,同时讲解了重定向的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、

import requests
#禁用安全请求警告(python3用以下方法,导入urllib3库,再用disable_warning())
# import urllib3
# urllib3.disable_warning()
#登录
url = 'http://10.99.35.27:8080/toLogin'
headers ={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
}
d ={"name":"wanglyd",
    "pass":"1234Qwer",
    "captcha":"asdfg"}

s = requests.session()#保持登录状态
r = s.post(url,headers=headers,data=d,verify=False)
#print(r.content.decode())

url1='http://10.99.35.27:8080/sys/listFeedback'
d1={"limit":"10","currentPage":"1"}
r1=s.post(url1,headers=headers,data=d1,verify=False)
#print(r1.content.decode())
print(r1.json())


二、Cookies绕过验证码登录
有时候登录需要输入验证码,最直观的方式的查看数据库,此处我们通过cookies绕过验证码保持登录(注意:并不是所有的登录都是靠的是cookies,有的是通过token)
添加cookie
1.往session里面添加cookie可以用以下方式
2.set里面参数按括号里面的参数格式
coo = requests.cookies.RequestsCookieJar()  
coo.set('cookie-name', 'cookie-value', path='/', domain='.xxx.com')  
s.cookies.update(c) 

三、重定向Location

1.重定向的状态码:

301----永久性重定向

302---暂时性重定向

注意:如果直接打印状态码,则为200,这是因为requests自动处理了重定向请求,

2.禁止重定向请求,可以设置一个参数:allow_redirects=False

3.获取重定向地址

#打印状态码,自动处理重定向请求
print(r.status_code)
new_url=r.headers["Location"]#获取重定向的Location并打印
print(new_url)

四、参数关联

### 接口关联的概念 接口关联通常指的是通过某种机制,在两个或多个数据流之间建立联系的过程。这种关联可以基于时间戳、键值或其他属性来完成。在分布式计算框架中,如 Apache Flink 或其他大数据处理工具,接口关联可以通过多种方式进行实现。 #### 基于 Flink 的 Lookup Join 实现 Flink 提供了一种称为 **Lookup Join** 的功能,用于将实时数据流与静态表(通常是数据库中的维表)进行连接[^1]。这种方式适用于需要动态查询外部存储系统的场景,比如 MySQL 数据库或 HBase 表格。以下是其实现的关键概念: - **Temporal Table Function**: 这是一种特殊的函数,允许用户定义如何从外部系统获取最新的维度数据。 - **Event Time Processing**: 使用事件时间语义确保即使延迟到达的数据也能被正确处理。 下面是一个简单的示例代码展示如何使用 Flink 的 `Table API` 来执行 Lookup Join: ```java // 注册维表 tableEnv.executeSql(""" CREATE TABLE dim_table ( id BIGINT, name STRING, PRIMARY KEY (id) NOT ENFORCED ) WITH ( 'connector' = 'jdbc', 'url' = 'jdbc:mysql://localhost:3306/mydb', 'username' = 'root', 'password' = '', 'driver' = 'com.mysql.cj.jdbc.Driver' ) """); // 主数据流注册为表 tableEnv.fromDataStream(mainStream, $("id"), $("value")) .executeSql("SELECT * FROM main_stream"); // 执行 Lookup Join tableEnv.sqlQuery(""" SELECT m.id, d.name, m.value FROM main_stream AS m JOIN dim_table FOR SYSTEM_TIME AS OF m.proctime AS d ON m.id = d.id """) ``` 此代码片段展示了如何利用 SQL 查询语法将主数据流 (`main_stream`) 和维表 (`dim_table`) 结合起来。 --- #### Zookeeper 中的 API 关联实现 ZooKeeper 是一种分布式的协调服务,广泛应用于集群管理、配置同步等领域。它提供了丰富的客户端 API 支持开发者构建复杂的分布式应用程序。对于 API 关联的具体实现,主要依赖于其节点结构以及监听器机制[^2]。 假设我们需要在一个项目中引入 ZooKeeper 并设置基础环境,则可以在 Maven 工程中添加如下依赖项: ```xml <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.7.1</version> </dependency> ``` 接着,我们可以通过 Java 编写一段程序演示如何创建路径并附加观察者逻辑: ```java import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.ZooKeeper; public class ZKClient { public static void main(String[] args) throws Exception { String connectString = "localhost:2181"; int sessionTimeout = 5000; // 创建 ZooKeeper 客户端实例 ZooKeeper zk = new ZooKeeper(connectString, sessionTimeout, event -> { System.out.println("Received watched event: " + event.getState()); if (event.getType() == Event.EventType.NodeDataChanged) { try { byte[] data = zk.getData("/example", false, null); System.out.println(new String(data)); } catch (Exception e) { e.printStackTrace(); } } }); Thread.sleep(Integer.MAX_VALUE); // 阻塞主线程以便持续接收通知 } } ``` 上述代码实现了对指定节点 `/example` 的监控,并在其内容发生变化时触发回调函数。 --- ### 总结 无论是采用 Flink 的 Lookup Join 技术还是借助 ZooKeeper 的事件驱动模型,都可以有效地达成不同组件间的接口关联目标。具体选择取决于实际业务需求和技术栈偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值