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

Spring靴Rest柱方法不起作用

范甫
2023-03-14
@PostMapping(value="/test", consumes = "application/json", produces = "application/json")
public String Test(@RequestBody PostResponse inputPayload) {
    PostResponse response = new PostResponse();
    response.setStreamName(inputPayload.getStreamName());
    String randomHexString = getRandomHexString(32);
    return randomHexString;
}
public class PostResponse {
    String streamName;

    public String getStreamName() {
        return streamName;
    }

    public void setStreamName(String streamName) {
        this.streamName = streamName;
    }

}

方法在我发出请求的另一个程序上执行:

public void onHTTPPostRequest(String streamName) throws IOException {

    String post_data = streamName;
    Gson gson = new Gson();
    String jsonString = gson.toJson(post_data);
    jsonString.toString();      

    URL pipedreamURL = new URL("http://10.100.2.44:8080/test");
    HttpURLConnection conn = (HttpURLConnection) pipedreamURL.openConnection();

    conn.setDoOutput(true);
    conn.setDoInput(true);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json");
    conn.setRequestProperty("Accept", "application/json");
    OutputStream os = conn.getOutputStream();
    os.write(jsonString.getBytes("UTF-8"));
    os.close();

    
    int responseCode = conn.getResponseCode();
    getLogger().info(responseCode);
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();

    getLogger().info(response.toString());
    Gson gson1 = new Gson();
    keyjson = gson1.toJson(response);

}

邮递员中的结果:在此处输入图像描述

日志:2021-07-30 13:15:30.376警告4398---[nio-8080-exec-8]。W.S.M.S.DefaultHandlerExceptionResolver:解析[org.springframework.http.converter.HttpMessageNotreadableException:JSON解析错误:无法构造com.example.restservice.PostResponse的实例(尽管至少存在一个创建者):没有字符串参数构造函数/工厂方法从字符串值反序列化(“AES”);嵌套异常是至少存在一个创建者):在[源:(PushbackInputStream);行:1,列:1]]处没有字符串参数构造函数/工厂方法可以从字符串值(“AES”)反序列化

共有1个答案

益光亮
2023-03-14

你收到的是“AES”

这不是有效的JSON。

您的endpoint接受的JSON必须是:

{
  "streamName": "aes"
}
PostResponse postResponse = new PostResponse();
postRepsone.setStreamName(streamName);
Gson gson = new Gson();
String jsonString = gson.toJson(postResponse);
 类似资料:
  • POM 应用程序 控制器 此外,我有模板文件夹中的资源文件夹和内部错误。html和index.html 当我访问localhost:8080/index时,会显示错误,而不是索引。我做错了什么?这真的是最简单的设置,它已经错了。。。

  • 我想公开指标endpoint上的所有指标,但将其中一些发布到远程计量注册中心。 为此,我为指标endpoint提供了一个SimpleMeter注册表,并为远程仪表注册表(Datadog)添加了一个MeterRegister stryCustomizer,以添加一些MeterFilter以避免使用MeterFilter的DENY功能进行特定指标。例如: 但是,所有与jvm相关的指标在Datadog中

  • 我对Spring靴不熟悉。我想在春靴中实现宽松的束缚。根据本文档https://docs . spring . io/spring-boot/docs/current/reference/html/boot-features-external-config . html # boot-features-external-config-relaxed-binding。它说,即使我们的名字中有破折号。

  • PUT方法在django rest框架中不起作用。 模型。派克 对应视图 当我请求页面(GET)时,它显示相应的细节(配置文件细节)。但是当我提交页面(PUT)时,它仍然转到部分,而不是。当我使用REST视图时,它工作得很好。问题出在网页视图(html)上。我错过了什么?感谢任何帮助 HTML页面

  • 我创建了将数据传递给spring rest的代码,但这些代码不能正常工作请参见下面的代码: 我的javascrit有:

  • 我尝试使用Spring启动执行器来观察我的简单应用程序,希望观察我办公室中的应用程序。 我的原始endpoint可以工作,但执行器的endpoint无法使用以下命令。 执行的命令: - 虽然我编译了spring-boot-starter-actuator-1 . 5 . 6 . release . jar,但似乎actuator的包没有包含在内。 你能告诉我出了什么问题吗? 我的环境: 在我的办公