@Headers Retrfit An annotation argument must be a compile-time constant

kotlin Retrfit 用注解添加多个Headers参数,用官方的java版本带大括号会报错:
在这里插入图片描述
去掉大括号就行了

`request must contain a kbn-xsrf header` 这句话的意思是说,在向某个服务器发送请求的时候,该请求需要包含一个名为 `kbn-xsrf` 的头部信息。这个通常出现在使用 Kibana 或者其他基于 Elasticsearch 构建的应用程序中。 ### 背景知识 Kibana 是一款开源的数据可视化工具,常用于分析 ElasticSearch 中存储的日志和其他数据。为了防止跨站请求伪造 (CSRF) 攻击,Kibana 强制要求某些类型的 HTTP 请求(如 POST、PUT 和 DELETE 等非幂等操作)必须附带一个特殊的头字段——即 `kbn-xsrf`。如果没有设置此头部,则 API 将拒绝处理请求,并返回类似“request must contain a kbn-xsrf header”的错误提示。 #### 解决方案: 当你遇到这个问题时,可以按照下面步骤解决: 1. **添加 Headers**:如果你通过 Postman 测试 RESTful 接口,请确认是否已加入 "Headers" 配置项并输入键值对 `"kbn-xsrf": "true"`。 2. **修改代码逻辑**:如果是编写脚本或应用来访问 API ,则应保证网络库支持自定义 headers 并插入相应内容 。例如 Python requests 库示例 : ```python import requests url = 'http://your-kibana-server/api/some-endpoint' headers = {'kbn-xsrf': 'true'} response = requests.post(url, json=payload, headers=headers) print(response.text) ``` 3. **浏览器插件配置** :如果是在前端页面内发起 ajax 请求 , 则同样需指定额外的 xsrf token 参数传递机制 。 总之,只要确保每次调用都携带了合法有效的 kbn-xsrf 标记即可解决问题啦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值