gpt4 book ai didi

java - 调试 RestTemplate 发布请求

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:38 25 4
gpt4 key购买 nike

我试图在 Spring 中使用 RestTemplate POSTREST-API。这是我正在使用的代码:

//Code to Post data using Rest Template
List<UserVO> userList = getUsers();
RestRequestVO submitRequestData = new RestRequestVO();
submitRequestData.setAction("update");
submitRequestData.setType("user");
submitRequestData.setItems(items);
ResponseEntity<String> resposne = restTemplate.postForEntity(putUserUrl, submitRequestData, String.class);
String message = resposne.getBody();

//The structure of class
public class RestRequestVO {
private String action;
private String type;
private List<UserVO> items;

//Setters and Getters
}

//Expected JSON
{
"action"="update",
"type"="user",
"items"=[
{ //user1 }, {//user2} ....
]
}

我需要正确调试它并查看通过 restTemplate.postForEntity(putUserUrl, submitRequestData, String.class); 行发送到 REST 服务器的确切 JSON 是什么。

我正在使用 Eclipse。我试过逐行调试代码。我还尝试将日志级别设置为 Debug

按照评论中给出的步骤进行更新

下面是我的 log4j.xml,我看不到任何与 REST 模板相关的 http 日志。如果我做错了,请告诉我。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

<appender name="CA" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss,SSS} - %5t - %5p - %l - %m%n" />
</layout>
</appender>

<appender name="FA" class="org.apache.log4j.FileAppender">
<param name="File" value="cw.log"/>
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss,SSS} - %5t - %5p - %l - %m%n" />
</layout>
</appender>

<logger name="log4j.logger.httpclient.wire" additivity="false" >
<level value="DEBUG" />
<appender-ref ref="CA"/>
</logger>

<root>
<level value="Debug" />
<appender-ref ref="CA" />
</root>

</log4j:configuration>

我打算在将 POJO 发送到 REST POST URL 之前打印从 POJO 创建的 JSON。

最佳答案

可以在public final void write(final T t, MediaType contentType, HttpOutputMessage outputMessage)方法末尾的AbstractHttpMessageConverter中设置断点,并对求值outputMessage.getBody()

关于java - 调试 RestTemplate 发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21402950/

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