嗨,伙计们如何请求通过android改造来实现这个soap请求,但是我得到了400响应代码,有什么办法可以通过改造来实现吗?
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<ActivityId CorrelationId="e5bbf878-4503-4010-aab5-b81d422b66ba" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">f905b59e-f833-44cb-9760-3c6619dc8c6c</ActivityId>
</s:Header>
<s:Body>
<QueryMessage xmlns="http://tempuri.org/">
<messageSet xmlns:a="http://schemas.datacontract.org/2004/07/Sanay.Suip.Library" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:ActionId i:nil="true">?</a:ActionId>
<a:Ip>::1</a:Ip>
<a:Parameters>
<a:Parameter>
<a:Name>Username</a:Name>
<a:Value i:type="b:string" xmlns:b="http://www.w3.org/2001/XMLSchema">tipex</a:Value>
</a:Parameter>
<a:Parameter>
<a:Name>Password</a:Name>
<a:Value i:type="b:string" xmlns:b="http://www.w3.org/2001/XMLSchema">123456</a:Value>
</a:Parameter>
</a:Parameters>
<a:Title>Authenticate</a:Title>
<a:Token>?</a:Token>
<a:Username>tipex</a:Username>
</messageSet>
</QueryMessage>
</s:Body>
这是我的模型类
@Root(name =“ s:Envelope”) @Namespace(前缀=“ s”,引用=“ http://schemas.xmlsoap.org/soap/envelope/”)
公共类信封{
@Element(name = "s:Body")
private Body body;
public Body getBody() {
return body;
}
public void setBody(Body body) {
this.body = body;
}
}
@Root(name = "x:Body")
公共类正文{
@Element(name = "QueryMessage")
private QueryMessage queryMessage;
public QueryMessage getQueryMessage() {
return queryMessage;
}
public void setQueryMessage(QueryMessage queryMessage) {
this.queryMessage = queryMessage;
}
}
@Root(name = "QueryMessage")
@Namespace(reference =“ http://tempuri.org/”)
公共类QueryMessage {
@Element(name = "messageSet")
private MessageSet messageSet;
public MessageSet getMessageSet() {
return messageSet;
}
public void setMessageSet(MessageSet messageSet) {
this.messageSet = messageSet;
}
}
@Root (name = "messageSet")
@NamespaceList({ @Namespace(前缀=“ a”,引用=“ http://schemas.datacontract.org/2004/07/Sanay.Suip.Library”), @Namespace(前缀=“ i”,引用=“ http://www.w3.org/2001/XMLSchema-instance”) })
公共类MessageSet {
@Element(name = "ActionId",required = false)
private String actionId;
@Element(name = "Ip")
private String ip;
@ElementList (name = "Parameters")
private List<ModelParameter> modelParameterList;
@Element(name = "Title")
private String title;
@Element(name = "Token",required = false)
private String token;
@Element(name = "Username")
private String username;
public String getActionId() {
return actionId;
}
public void setActionId(String actionId) {
this.actionId = actionId;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public List<ModelParameter> getModelParameterList() {
return modelParameterList;
}
public void setModelParameterList(List<ModelParameter> modelParameterList) {
this.modelParameterList = modelParameterList;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
@Root(name = "Parameter")
公共类ModelParameter {
@Element(name = "Name")
private String name;
@Element(name = "Value")
private String value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
答案 0 :(得分:0)
您的课程有很多错误。 我已经修改并测试了。我能够将xml转换为对象。
信封类。
/**
* Created by kbiradar on 7/26/2018.
*/
@Root(name = "Envelope")
@Order(elements = {"Header", "Body"})
@Namespace(prefix = "s", reference = "http://schemas.xmlsoap.org/soap/envelope/")
public class Envelope {
@Element(name = "Header")
@Namespace(prefix = "s", reference = "http://schemas.xmlsoap.org/soap/envelope/")
private Header header;
@Element(name = "Body")
@Namespace(prefix = "s", reference = "http://schemas.xmlsoap.org/soap/envelope/")
private Body body;
public Body getBody() {
return body;
}
public void setBody(Body body) {
this.body = body;
}
public Header getHeader() {
return header;
}
public void setHeader(Header body) {
this.header = body;
}
}
标题类。
/**
* Created by kbiradar on 7/26/2018.
*/
@Root(name = "Header", strict = false)
public class Header {
static class ActivityId
{
@Attribute
String CorrelationId;
@Text
private String ActivityId;
}
@Element(name = "ActivityId")
ActivityId ActivityId;
}
身体课。
/**
* Created by kbiradar on 7/26/2018.
*/
@Root(name = "Body", strict = false)
public class Body {
@Element(name = "QueryMessage")
//@Namespace(prefix = "s", reference = "http://schemas.xmlsoap.org/soap/envelope/")
@Namespace(reference = "http://tempuri.org/")
private QueryMessage queryMessage;
public QueryMessage getQueryMessage() {
return queryMessage;
}
public void setQueryMessage(QueryMessage queryMessage) {
this.queryMessage = queryMessage;
}
}
QueryMessage类。
/**
* Created by kbiradar on 7/26/2018.
*/
@Root(name = "QueryMessage")
public class QueryMessage {
@Element(name = "messageSet")
@NamespaceList({ @Namespace( prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library"),
@Namespace( prefix = "i", reference = "http://www.w3.org/2001/XMLSchema-instance") })
private MessageSet messageSet;
public MessageSet getMessageSet() {
return messageSet;
}
public void setMessageSet(MessageSet messageSet) {
this.messageSet = messageSet;
}
}
MessageSet类。
/**
* Created by kbiradar on 7/26/2018.
*/
@Root(name = "messageSet")
public class MessageSet {
static class ActionId
{
@Attribute
@Namespace(prefix = "i", reference = "http://www.w3.org/2001/XMLSchema-instance")
String nil;
@Text
private String actionId;
}
@Element(name = "ActionId")
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
ActionId actionId;
@Element(name = "Ip")
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
private String ip;
@ElementList(name = "Parameters")
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
private List<ModelParameter> modelParameterList;
@Element(name = "Title")
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
private String title;
@Element(name = "Token",required = false)
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
private String token;
@Element(name = "Username")
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
private String username;
public String getActionId() {
return actionId.actionId;
}
public void setActionId(String actionId) {
this.actionId.actionId = actionId;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public List<ModelParameter> getModelParameterList() {
return modelParameterList;
}
public void setModelParameterList(List<ModelParameter> modelParameterList) {
this.modelParameterList = modelParameterList;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
消息参数类。
/**
* Created by kbiradar on 7/26/2018.
*/
@Root(name = "Parameter")
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
public class ModelParameter {
static class value
{
@Attribute
@Namespace(prefix = "i", reference = "http://www.w3.org/2001/XMLSchema-instance")
String type;
@Text
private String value;
}
@Element(name = "Name")
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
private String name;
@Element(name = "Value")
@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library")
@NamespaceList({@Namespace(prefix = "a", reference = "http://schemas.datacontract.org/2004/07/Sanay.Suip.Library"),
@Namespace(prefix = "b", reference = "http://www.w3.org/2001/XMLSchema")})
private value value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value.value;
}
public void setValue(String value) {
this.value.value = value;
}
}