gpt4 book ai didi

java - @Consumes(MediaType.APPLICATION_FORM_URLENCODED) FormParameter 为空

转载 作者:可可西里 更新时间:2023-11-01 16:06:38 30 4
gpt4 key购买 nike

我创建了一个如下所示的 Jersey 网络服务:

@Path("/webhookservice")
public class Webhook {

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response readData(@FormParam("payload") Payload payload, @Context HttpServletRequest req) {

// Gets client IP address
String ipAddress = (req.getRemoteHost().equals("") || req.getRemoteHost() == null) ? "UNKNOWN" : req.getRemoteHost();

// Persist data to DB
Persist.saveToDb(payload.getId(), Integer.toString(payload.getTimestamp()),
payload.getStatus(), payload.getAuth_code(),
payload.getTotal_amount(), payload.getRequired_amount(),
ipAddress);

// Repsond with a HTTP 200 OK
Response response = Response.status(200).build();
return response;

}

@GET
@Produces("text/plain")
public String testService() {
return "Service is up and working!";
}

}

Payload 类如下所示:

@XmlRootElement
public class Payload {

private String id;
private int timestamp;
private String status;
private String auth_code;
private int total_amount;
private int required_amount;

// Getters
@XmlElement(name = "id")
public String getId() {
return this.id;
}

@XmlElement(name = "timestamp")
public int getTimestamp() {
return this.timestamp;
}

@XmlElement(name = "status")
public String getStatus() {
return this.status;
}

@XmlElement(name = "auth_code")
public String getAuth_code() {
return this.auth_code;
}

@XmlElement(name = "total_amount")
public int getTotal_amount() {
return this.total_amount;
}

@XmlElement(name = "required_amount")
public int getRequired_amount() {
return this.required_amount;
}

// Setters
public void setId(String id) {
this.id = id;
}

public void setTimestamp(int timestamp) {
this.timestamp = timestamp;
}

public void setStatus(String status) {
this.status = status;
}

public void setAuth_code(String auth_code) {
this.auth_code = auth_code;
}

public void setTotal_amount(int total_amount) {
this.total_amount = total_amount;
}

public void setRequired_amount(int required_amount) {
this.required_amount = required_amount;
}

}

我发送的请求如下所示:

Content-Type: application/x-www-form-urlencoded Method: POST

未编码正文:

payload={"id":"123123","auth_code":"191331","required_amount":101,"timestamp":1407775713,"status":"completed","total_amount":101}

编码正文:

payload%3D%7B%22id%22%3A%22123123%22%2C%22auth_code%22%3A%22191331%22%2C%22required_amount%22%3A101%2C%22timestamp%22%3A1407775713%2C%22status%22%3A%22completed%22%2C%22total_amount%22%3A101%7D

但是当我发送请求时,“Webhook”类中的“readData()”函数中的“payload”对象为空...有人能指出我正确的方向吗?

最佳答案

我已经这样做了,而且它正在工作:

    @Path("users")
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Login postLogin( MultivaluedMap<String, String> personParams ) {
String user = personParams.getFirst(USER);
String pass = personParams.getFirst(PASSWORD);

关于java - @Consumes(MediaType.APPLICATION_FORM_URLENCODED) FormParameter 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25259760/

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