servicecomb项目在服务层获取cookie,请求头header

 1.对于普通的项目

在开发中常常需要在后端获取header或者是cookie,在控制层获取request可以直接写在参数中获取,但在服务层如果是其他微服务框架可以直接使用

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

的形式获取,但是在servicecomb框架中这种方式获取为空,只能使用ContextUtils这个工具类来获取。 

2.在servicecomb项目中

Map<String,Object> map = ContextUtils.getInvocationContext().getLocalContext();
        VertxServerRequestToHttpServletRequest vertxServerRequest = (VertxServerRequestToHttpServletRequest)map.get(
                "servicecomb-rest" +
                "-request");
        Cookie tokenCookie = vertxServerRequest.getContext().request().getCookie("token");
        MultiMap multiMap = vertxServerRequest.getContext().request().headers();

在Python爬虫中,如果你需要获取到某个网站的Cookie并将其包含在HTTP请求的头信息中,你可以使用`requests`库。以下是一个简单的例子: ```python import requests # 假设我们有一个需要登录的网站,并且我们需要它的Cookie def get_cookie(url): # 使用session保存cookies,这样后续的所有请求都会带上这个Cookie session = requests.Session() # 发起一个GET请求,登录并获取Cookie response = session.get(url) # 获取到响应头中的Set-Cookie字段,这是一个列表,包含了所有Cookie cookies = response.headers['Set-Cookie'] # 对每个Cookie进行解析(这里通常会更复杂,因为实际的Cookie格式可能会有多种) parsed_cookies = {} for cookie in cookies: name, value = cookie.split('=', 1) # 这里只是一个简单示例,真实场景可能需要正则表达式或其他方式解析 parsed_cookies[name] = value return parsed_cookies # 获取Cookie后,可以在发送其他请求时设置它们 url_to_crawl = 'https://example.com' cookie_dict = get_cookie(url_to_crawl) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Cookie': '; '.join(f'{name}={value}' for name, value in cookie_dict.items()), # 合并成字符串形式的Cookie } response = requests.get(url_to_crawl, headers=headers) ``` 在这个例子中,每次发送新的请求时,我们都会自动携带之前获取到的Cookie
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值