Obecná diskuze o vývojiSOAP Dotaz bez hlavičky

Moderátoři: mArtinko5MB, mArtinko5MB

Odpovědět
Bulis
Nové Androidě
Příspěvky: 3
Registrován: úte 19. úno 2019 10:01:33
Typ mobilu / ROM: Samsung Galaxy A8

SOAP Dotaz bez hlavičky

Příspěvek od Bulis »

Zdravím,
seznamuju se s programováním aplikací android a chtěl bych si zprovoznit komunikaci s programem 4D, ve kterém normálně programuji. Nejlepší cesta je pomocí webservices a soap.
Z různých návodů na netu jsem se dostal nejdál s kódem:

public void webServices(View sender) {
Number getCel1 = 68;
SoapPrimitive resultString;
String SOAP_ACTION = "WebServicesApp#Services_webservices";
String METHOD_NAME = "Services_webservices";
String NAMESPACE = "http://www.mojestranky/App/webservices";
String URL = "http://MUJPC/4DSOAP/DOC";

SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);

Request.addProperty("Vstup",getCel1);

SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(Request);
HttpTransportSE transport = new HttpTransportSE(URL);

transport.debug = true;
try {
transport.call(SOAP_ACTION,soapEnvelope);
resultString = (SoapPrimitive) soapEnvelope.getResponse();
Toast.makeText(this,resultString.toString(),Toast.LENGTH_LONG).show();
} catch (Exception ex) {
Toast.makeText(this,"Nelze navázat komunikaci!",Toast.LENGTH_LONG).show();
}

}


Komunikace sice funguje, ale vždy se mi vrátí chybové XML s chybou Complex types are not parsed in this version.
Když se dívám přes Wireshark, tak XML z android vypadá

POST /4DSOAP/DOC HTTP/1.1
User-Agent: kSOAP/2.0
SOAPAction: WebServicesApp#Services_webservices
Content-Type: text/xml
Connection: close
Content-Length: 400
Host: MUJPC
Accept-Encoding: gzip

<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
<v:Header />
<v:Body>
<Services_webservices xmlns="http://www.MojeStranky/App/webservices" id="o0" c:root="1">
<Vstup i:type="d:int">68</Vstup>
</Services_webservices>
</v:Body>
</v:Envelope>


Když použiji web services přímo ze 4D, které funguje, tak XML vypadá obdobně:

POST /4DSOAP/DOC HTTP/1.1
Connection: Close
Content-Length: 521
Content-Type: text/xml; charset=UTF-8
Date: Tue, 19 Feb 2019 08:44:07 GMT
Host: MUJPC
SoapAction: "WebServicesApp#Services_webservices"
User-Agent: 4D_HTTP_Client/15.4

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<Services_webservices xmlns="http://www.MojeStranky/App/webservices">
<Vstup>68</Vstup>
</Services_webservices>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Rozdíl, který tam vidím je ten, že v XML dotazu přímo ze 4D chybí header. Dá se v Android použít něco, co ten tag header vynechá? Nebo případně, abych to xml vytvořil celé ručně? Když vyzkouším různé varianty co jsem našel na internetu, tak se mi nenaváže ani komunikace.

Děkuji za každou radu.
Naposledy upravil(a) Bulis dne úte 19. úno 2019 14:59:27, celkem upraveno 1 x.
Uživatelský avatar
Crusty
Robot
Příspěvky: 938
Registrován: ned 19. črc 2009 17:30:40
Typ mobilu / ROM: Redmi Note 9 Pro
Bydliště: Praha
Kontaktovat uživatele:

Re: SOAP Doatz bez hlavičky

Příspěvek od Crusty »

tady jsi zkousel hledat? https://kb.4d.com/
kdyz tam napisu Android, neco to vyhodi, ale chce to prihlaseni, tak sem to dal nestudoval
Bulis
Nové Androidě
Příspěvky: 3
Registrován: úte 19. úno 2019 10:01:33
Typ mobilu / ROM: Samsung Galaxy A8

Re: SOAP Doatz bez hlavičky

Příspěvek od Bulis »

Ne, na těchto stránkách není nikdy nic rozumného. Do toho prvního odkazu se taky nedostanu a ty další 2 jsou o replikování databází, ale to běží přes sql.
Uživatelský avatar
Crusty
Robot
Příspěvky: 938
Registrován: ned 19. črc 2009 17:30:40
Typ mobilu / ROM: Redmi Note 9 Pro
Bydliště: Praha
Kontaktovat uživatele:

Re: SOAP Dotaz bez hlavičky

Příspěvek od Crusty »

Bulis
Nové Androidě
Příspěvky: 3
Registrován: úte 19. úno 2019 10:01:33
Typ mobilu / ROM: Samsung Galaxy A8

Re: SOAP Dotaz bez hlavičky

Příspěvek od Bulis »

Nakonec jsem si poradil sám v kódu pro android stačilo přidat
soapEnvelope.setAddAdornments(false);
Odpovědět

Zpět na „Obecná diskuze o vývoji“