当前位置: 首页 > 知识库问答 >
问题:

RestTemplate的错误请求->postForObject(spring boot)

邓正谊
2023-03-14

我在一件简单的事情上遇到了一些麻烦。

我正在尝试向其他REST服务发送请求

//getting restTemplate from RestTemplateBuilder.build()
//endpoint and rest of variables came in properties

Map<String, String> map = new HashMap<>();
map.put("app", app);
map.put("username", username);
map.put("password", password);
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

String token = restTemplate.postForObject(loginEndpoint, headers, String.class, map);

我要求:

Unexpected error occurred in scheduled task.

org.springframework.web.client.HttpClientErrorException: 400 Bad Request

奇怪的是,当我使用一个简单的卷曲调用和工作顺利。

已经检查了变量和endpoint,它是正确的。

共有1个答案

贺福
2023-03-14

在这种情况下,端点必须在端点URL上具有适当的占位符。

我让这个方法变得很容易:

private String placeHolders(Map<String, String> values){
    String response = "?";
    boolean first = true;
    for(Map.Entry<String, String> entry:values.entrySet()){
        if(first){
            first = false;
        }else{
            response+="&";
        }
        response+=entry.getKey()+"="+entry.getValue();
    }
    return response;
}

现在的呼吁是:

String token = restTemplate.postForObject(loginEndpoint+placeHolders, headers, String.class, map);
 类似资料:
  • 在使用RestTemplate发送POST请求时,我一直收到400个错误请求。这是我的密码: 我试图实现的是转换ff。spring的php代码: 有什么不对劲吗?请注意,我发布到一个外部链接(API),它是HTTPS。

  • 我正在RestTemplate中使用exchange for GET方法。但是在exchange方法中传递requestEntity时,我得到了400个错误的请求。下面是我正在使用的代码。 生成URL: 我尝试从postman访问producer URL,其标题为Content-Type:Application/JSON,正文为{“firstName”:“a”,“lastName”:“b”,“da

  • 当我从JUnit测试用例向Rest服务发送请求时,我收到了400个坏请求。我的密码。错误日志快结束了。请帮我解决这个问题。当我通过直接在URL中传递参数来调用服务器为:restTemplate.getForObject(BASE_URL+“/Remote?ServiceName=SimpleService&Source=Web”,HelloWorld.Class)时,不会出现任何错误。但如何通过使

  • 问题内容: 。我 试图通过Spring Android 从API 获取访问令牌。来自Instagram文档的请求是这样的: 这是我的请求访问令牌(成功获取请求令牌后): 结果映射类: 其余模板: 但是我总是收到400错误的请求错误。这是我的堆栈跟踪: P / s:我确定我的参数值正确,因为我通过curl进行了测试,并且效果很好。 问题答案: 如果请求的内容类型不可接受,则服务器通常会返回HTTP

  • 问题内容: 我对PersonDTO具有以下定义: 这是一个示例记录: 现在,约翰·多伊离婚了。因此,我需要向该URL发送PATCH请求: 带有以下请求正文: 我不知道该怎么做。这是我到目前为止尝试过的: 这是上述问题: 1)由于我仅设置了MaritalStatus,因此其他字段均为null。因此,如果我打印出请求,它将看起来像这样: 这是否意味着我必须先获得GET才能进行PATCH? 2)我得到以

  • PostForObject方法上的这个注释@Nullable在RestTemplate中意味着什么? 我想澄清一下我得到的自定义对象是否可以为空? custResponse是否可以为空?