gpt4 book ai didi

RestTemplate 请求带大括号 ("{", "}")

转载 作者:行者123 更新时间:2023-12-04 12:47:05 29 4
gpt4 key购买 nike

我想通过 RestTemplate 发送请求。但是我的网址有大括号('{','}'),因此我有异常(exception):“没有足够的变量值可用于扩展......”。

我尝试通过 uri

UriComponentsBuilder builder = UriComponentsBuilder.fromPath(url);
UriComponents uriComponents = builder.build();
URI uri = uriComponents.toUri();

但是我得到了新的异常(exception):“protocol = https host = null”。

如何使用我的 URL 发送请求?在 URL 中必须是大括号。

我的代码:
String url = "https://api.vk.com/method/execute?code=return[API.users.search({"count":1})];&access_token...
String result = restTemplate.getForObject(url, String.class);

最佳答案

下面的代码使用 UriComponentsBuilder 加密 uri , 使用 RestTemplate 添加查询参数并设置 HttpHeaders如果有的话。

public HttpEntity<String> getEntityByUri() {
String req = "https://api.vk.com/method/execute";

UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(req)
.queryParam("code",
"return[API.users.search({"count":1})]");
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.ALL));
HttpEntity<String> httpEntity = new HttpEntity<String>(headers);
return new RestTemplate().exchange(builder.build().encode().toUri(), HttpMethod.GET, httpEntity, String.class);
}

希望这会有所帮助,祝你好运!

关于RestTemplate 请求带大括号 ("{", "}"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43917408/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com