Мне нужно создать запрос на мыло, подобный этому.Создайте запрос SOAP с помощью KSOAP Android
SOAP-ЗАПРОС
POST /TennisMasters/TennisMasters.Listener.asmx HTTP/1.1
Host: playinkstudio.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://playinktennismasters.com/authenticateUser"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<authenticateUser xmlns="http://playinktennismasters.com/">
<user>string</user>
</authenticateUser>
</soap:Body>
</soap:Envelope>
Я использую KSOAP2, чтобы построить этот запрос.
private static String SOAP_ACTION = "http://playinktennismasters.com/authenticateUser";
private static String NAMESPACE = "http://playinktennismasters.com/";
private static String METHOD_NAME = "authenticateUser";
private static String URL = "http://playinkstudio.com/TennisMasters/TennisMasters.Listener.asmx";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("user", "A Json String will be here");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER12);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
} catch (Exception e) {
e.printStackTrace();
}
Это запрос, который я получил от отладки.
<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://www.w3.org/2003/05/soap-encoding" xmlns:v="http://www.w3.org/2003/05/soap-envelope">
<v:Header />
<v:Body>
<authenticateUser xmlns="http://playinktennismasters.com/" **id="o0" c:root="1"**>
<user **i:type="d:string"**>{"email":"[email protected]","UserDate":"Feb 22, 2012 7:01:24 PM","GearId":0,"GearValue":0,"Income":0,"Level":0,"MatchResult":0,"MatchType":0,"OfferId":0,"OpponentId":0,"Partners":0,"ExhibitionCount":0,"PowerRuns":0,"PowerServes":0,"PowerShots":0,"Seeds":0,"Energy":0,"Cash":0,"Stamina":0,"Strength":0,"SubLevel":0,"TotalEnergy":0,"TotalStamina":0,"TrainingId":0,"Agility":0,"UserId":0,"Age":0,"ActivityId":0,"gearIsGift":0}</user>
</authenticateUser>
</v:Body>
</v:Envelope>
Я не знаю, почему дополнительные атрибуты, такие как «ид» и «C: корень» добавляются в authenticateUser. и дополнительный атрибут в i: type = "d: String". Пожалуйста, можете прийти, чтобы кто-нибудь дал мне хороший пример или учебник, который может помочь мне создать запрос, как указано выше, действительно нужна помощь.
Я принял первый запрос, который вы показали, вы получили его от soapUI? вы должны знать, что конверт ksoap2 выглядит немного иначе, чем мыло, скажем, например, из Java-программы, выполненной в netbeans с использованием обычного мыла. Это не проблема, оба получат одинаковый результат, это просто xml. Получаете ли вы ошибку из вашего запроса или вас просто беспокоят дополнительные добавленные атрибуты? – shadesco
HI, пожалуйста, соедините меня в этом чате .. У меня есть некоторые сомнения, поэтому, https: //chat.stackoverflow.com/rooms/146715/soap –