Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
Podle dokumentace se snažím naprogramovat WS, ale mám problém se zadáním parametrů.
V dokumentaci mám nějakou takovou funkci: FUNKCE getInfo _____________________________________________________________________ Parametr: login Hodnota: name=[your name], password=[your password], code Hodnota: code=[your code] /*pozn. mezi jednotlivými subparamtry v originální dokumentaci nejsou čárky, ale jsou vypsány pod sebou*/ Parametr: xmlData Hodnota: file content _____________________________________________________________________ V php mám podle toho tenhle kód: $login = array('name'=>'my_name','password'=>'heslo','code'=>12345); $xml = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/../xml/data.xml'); $soapClient = new SoapClient("https://domena.cz/webservices/functions?wsdl"); try { $request = $soapClient->getInfo($login,$xml); } catch (SOAPFault $result) { echo $result->getMessage(); } Ale nefubguje to, hlásí mi to chybu: SOAP-ERROR: Encoding: object has no 'login' property Do toho parametru login dávám pole, a to je asi špatně. Nevím jak to tam chtějí, v dokumentaci je to jen uvedené jak to píšu tady. Má se tam snad dát nějak objekt nebo json? Vůbec nevím jak se to dělá (jaký je úzus), když v dokumentaci vůbec neuvádí co si tam vlastně pod tím paramtrem představují. Můžete prosím někdo poradit? |
||
Kubo2 Profil |
#2 · Zasláno: 16. 3. 2015, 23:17:14
quatzael:
Ukáž nám definičný súbor https://domena.cz/webservices/functions?wsdl , potom budeme možno o niečo múdrejší.
|
||
quatzael Profil |
Kubo2:
To za prvý ani nemůžu, protože to je tak trochu TOP SECRET. Navíc ho ani nemám k dispozici přímo, ale mám k němu přístup pouze z té "uvedené adresy" a můžu se k němu dostat pouze ze serveru pomocí phpka. Přístup je omezen podle IP adresy.. Lze to nějak vůbec stáhnout pomocí PHP? Zkouším to klasicky pomocí funkce file_get_contents() , ale hlásí to chybu:
Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 Kubo2: Jenže já to na tom serveru ani v tý konfiguraci zřejmě jinak nastavit nemůžu (hosting zřejmě neumožňuje) |
||
Taps Profil |
quatzael:
Já to mám např. takto $requestParams = array( 'USER_NAME' => 'uzivatel', 'PASSWORD' => 'heslo' ); $client = new SoapClient("http://server/SPSWS.asmx?WSDL&op=KonvertujDokumentNaPDFA"); $response = $client->KonvertujDokumentNaPDFA($requestParams); file_put_contents('dokument.pdf',$response->KonvertujDokumentNaPDFAResult->FILE); <? simplexml_load_file(); ?> |
||
Kubo2 Profil |
#5 · Zasláno: 17. 3. 2015, 07:13:06
quatzael:
file_get_contents() neuspeje, pretože na hostingu ti zakázali používať wrappery http: a https: nastavením allow_url_fopen = Off . Čo je veľká škoda, pretože najlepšie môžeš webovej službe porozumieť práve z jej WSDL definície.
|
||
quatzael Profil |
#6 · Zasláno: 17. 3. 2015, 08:56:20 · Upravil/a: quatzael
Tak se mi to wsdl nakonec podařilo stáhnout běžným způsobem přes prohlížeč. Musel jsem tam x-krát odklepnout, že chci vstoupit bez certifikátu nebo co..
Takhle to nějak vypadá. <xs:complexType name="user_password"> <xs:sequence> <xs:element maxOccurs="1" minOccurs="1" name="name" type="xs:string"/> <xs:element maxOccurs="1" minOccurs="0" name="password" type="xs:decimal"/> <xs:element maxOccurs="1" minOccurs="0" name="code" type="xs:decimal"/> </xs:sequence> </xs:complexType> <xs:complexType name="LoginChoice"> <xs:choice maxOccurs="1" minOccurs="1"> <xs:element maxOccurs="1" minOccurs="0" name="login_a" type="spolecne:user_password"/> <xs:element maxOccurs="1" minOccurs="0" name="login_b" type="spolecne:pin"/> </xs:choice> </xs:complexType> <xs:element name="getInfo"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="1" minOccurs="1" name="login" type="spolecne:LoginChoice"/> <xs:element maxOccurs="1" minOccurs="1" name="xmlData" type="xs:string"/> <xs:annotation> <xs:documentation> Top Secret Text </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> Je to samozřejmě jen výtažek, který se týká té funkce a toho přihlašování. Taps: No to tam dáváš pole úplně stejně jako já. Tady v mým případě to vypadá, že to asi chce multidimenzionální pole. |
||
Keeehi Profil |
No a nemůže být problém právě v tom, že ten certifikát toho serveru je neplatný? Jak vypnout ověřování. Ale v tom případě je pak celkem jedno, zda to běží na http nebo na https. Takže pokud tomá http verzi, stačilo by se ptát rovnou tam, bezpečnost bude na stejně nízké úrovni.
A nebo opravit certifikáty. Problém s certifikáty však může býtjaku tebe tak i na jejich straně. |
||
quatzael Profil |
#8 · Zasláno: 17. 3. 2015, 09:27:17
Keeehi:
S certifikátem si myslím, že problém nebude. Jiným to frčí. A tuhle WS obstarává celý tým ajťáků. Hlásí to tu chybu se špatným parametrem login, tak chyba bude asi logicky tam.. |
||
Časová prodleva: 9 let
|
0