gpt4 book ai didi

rest - HTTP POST 的 cURL 请求在语法上不正确

转载 作者:行者123 更新时间:2023-11-28 22:03:11 30 4
gpt4 key购买 nike

我正在尝试在 Tomcat 7 上运行 Apache Jersey REST 的 Windows Server 2008 R2 上通过 cURL 命令行执行以下命令。

curl -X POST -d "<userList xmlns="urn:user"><user role="ROLE_OPERATOR" loginName="test_login1"></user></userList>" -H "Content-Type: application/xml" --basic --user username:password http://localhost:8080/meolutws/UserList/

当我发出命令时,我收到带有消息的 HTTP 400:“客户端发送的请求在语法上不正确”。

网络服务上的方法签名看起来像这样:

@POST
@CONSUMES({"application/xml"})
public Response createUsers(UserList users){
}

UserList类定义如下:

  @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "UserList", namespace = "urn:user", propOrder = {
"users"
})
@XmlRootElement(name = "userList", namespace = "urn:user")
public class UserList
implements Serializable
{

@XmlElement(name = "user")
protected List<User> users;

public List<User> getUsers() {
if (users == null) {
users = new ArrayList<User>();
}
return this.users;
}
}

用户定义如下:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "User", namespace = "urn:user")
@XmlRootElement(name = "user", namespace = "urn:user")
public class User
implements Serializable
{

@XmlAttribute(name = "loginName", required = true)
protected String loginName;

@XmlAttribute(name = "role", required = true)
protected String role;


public String getLoginName() {
return loginName;
}

public void setLoginName(String value) {
this.loginName = value;
}

public String getRole() {
return role;
}

public void setRole(String value) {
this.role = value;
}
}

我错过了什么?

最佳答案

引号的使用看起来不对。你这样做:

curl -X POST \
-d "<userList xmlns="urn:user"><user role="ROLE_OPERATOR" loginName="test_login1"></user></userList>" \
-H "Content-Type: application/xml" \
--basic --user meo:meo \
http://localhost:8080/meolutws/UserList/

你的 body 是:

"<userList xmlns="urn:user"><user role="ROLE_OPERATOR" loginName="test_login1"></user></userList>"

您没有转义引号 "。如果您使用 ',是否会发生错误?

'<userList xmlns="urn:user"><user role="ROLE_OPERATOR" loginName="test_login1"></user></userList>'

关于rest - HTTP POST 的 cURL 请求在语法上不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17958766/

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