gpt4 book ai didi

java - 使用 Java 向 Rest Web 服务发送 JSON Post 请求

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:10 25 4
gpt4 key购买 nike

我正在尝试将一个值发送到 JSON 字符串内的虚拟 Rest Web 服务。但是,该服务无法获取我发送的值。

首先,我的 JAX-RS 代码是这样的:

@POST
@Path("/ser1")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response convertFtoCfromInput(final BasicModel bm) throws JSONException {

System.out.println("Value is " + bm.value);
JSONObject jsonObject = new JSONObject();
float celsius;
celsius = (bm.value - 32) * 5 / 9;
jsonObject.put("F Value", bm.value);
jsonObject.put("C Value", celsius);

String result = "@Produces(\"application/json\") Output: \n\nF to C Converter Output: \n\n" + jsonObject;
return Response.status(200).entity(result).build();
}

其中 BasicModel 类是:

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class BasicModel {
@XmlElement float value;
}

我正在使用 Postman 向“.../ftocservice/ser1”发送 POST 请求,我的请求正文是:

{"value": 900.0}

当我发送请求时,服务无法获取值 900.0。它打印“Value is 0.0”并返回:{“C Value”:-17.77777862548828,“F Value”:0}

我哪里做错了?已经感谢您的帮助。

资源:

最佳答案

我解决了这个问题!

我从该值中删除了“XmlElement”标记并将其设为私有(private)。我为它创建了 getter 和 setter 并且它起作用了。

所以,BasicModel的最终代码是:

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class BasicModel {
private float value;

public float getValue(){
return value;
}

public float setValue(float value){
this.value = value;
}

}

关于java - 使用 Java 向 Rest Web 服务发送 JSON Post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54731278/

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