我正在尝试构建一个 url UriComponentsBuilder。
UriComponentsBuilder.fromUriString(BASE)
.pathSegment("api")
.pathSegment("v1")
.queryParam("param1", userId) //userId in null
.queryParam("param2",productId) //productId 12345
.build().toUriString();
Run Code Online (Sandbox Code Playgroud)
我得到的结果如下所示。
"http://localhost/api/v1?param1=¶m2=12345"
Run Code Online (Sandbox Code Playgroud)
当这些查询参数之一为 null 时,我根本不希望该参数键成为 url 的一部分。那么当参数为空时如何动态构造URL呢?我期望这样的事情:
"http://localhost/api/v1?param2=12345"
Run Code Online (Sandbox Code Playgroud) 我正在尝试发出 HTTP 请求,但我目前可以从 Firefox 浏览器响应 503 错误访问的网站。代码本身非常简单。在网上进行了一些搜索后,我user-Agent向请求添加了参数,但它也没有帮助。有人可以解释我如何摆脱这个 503 错误吗?顺便说一句,我想根据 btc 的价格制作自己的警报系统。
import requests
url = "https://www.paribu.com"
header ={'User-Agent': 'Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0 '}
response = requests.get(url,headers = header)
print(response)
Run Code Online (Sandbox Code Playgroud) 我的架构中有几个微服务。我想实现一个 API 网关来将请求路由到服务。为了实现这一目标,我实施了spring-cloud-gateway这就是我的application.yml
server:\n port: 9090\nspring:\n application:\n name: "API-GATEWAY"\n cloud:\n gateway:\n routes:\n - id: task-service\n uri: 'http://localhost:8083'\n predicates:\n - Path=/task/**\nRun Code Online (Sandbox Code Playgroud)\n到目前为止,一切都按预期进行。一个请求localhost:9090/task/123是localhost:8083/task/123. 下面就到了第二部分。
我希望某些用户只能访问某些端点。在我的 JWT 令牌中,我有角色字段。
\n {\n "accountName": "erdem.ontas",\n "surname": "\xc3\x96nta\xc5\x9f",\n "roles": [\n "ADMIN",\n "USER"\n ],\n}\nRun Code Online (Sandbox Code Playgroud)\n我不想在每个服务中单独指定授权,有没有办法在 spring-cloud-gateway 中指定基于角色的访问?例如,我希望 USER 角色能够访问GET http://localhost:9090/task/但不能访问GET http://localhost:9090/dashboard/