Autor Zpráva
quatzael
Profil
Zkouším curl, ale hází mi to chybu při výpisu proměnné pomocí var_dump.

$tuCurl = curl_init(); 
curl_setopt($tuCurl, CURLOPT_URL, "https://urladdress.cz/soap/services"); 
curl_setopt($tuCurl, CURLOPT_VERBOSE, 0); 
curl_setopt($tuCurl, CURLOPT_HEADER, 0); 
curl_setopt($tuCurl, CURLOPT_SSLVERSION, 3); 
curl_setopt($tuCurl, CURLOPT_POST, 1); 
curl_setopt($tuCurl, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($tuCurl, CURLOPT_POSTFIELDS, $data); 
curl_setopt($tuCurl, CURLOPT_HTTPHEADER, array("Content-Type: text/xml", "Content-length: ".strlen($data))); 

$tuData = curl_exec($tuCurl); 
if(!curl_errno($tuCurl)){ 
  $info = curl_getinfo($tuCurl); 
  echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url']; 
} else { 
  echo 'Curl error: ' . curl_error($tuCurl); 
} 

curl_close($tuCurl); 
var_dump($tuData);

To je prakticky opsanej kód podle komentářů v dokumentaci php.net.

Ale vyhodí mi to tohle:
REST: 
resource(7) of type (curl) Responce from DB: 1
int(1) Took 0.319048 seconds to send a request to https://urladdress.cz/soap/services 
string(1208) "    

Server Error
500 - Internal server error.

There is a problem with the resource you are looking for, and it cannot be displayed.
" 

Ta část Server Error je vypsaná v barevných rámečcích

Nevíte prosím někdo čím to může být? Zdá se totiž, že request samotný proběhl ok, ale server si neví rady s tím výpisem..
snazimse
Profil
quatzael:

To vypadá, jako by ten server vracel 500 , tam něco zřejmě nebude v pořádku na straně toho serveru. Ten skript nevypadá chybně.
quatzael
Profil
snazimse:
Máš pravdu.. Mě to celou dobu nedošlo, že to je chyba na jejich serveru. Myslel jsem, že to je na tom mým..
Tak tam prostě nějak posílám požadavek, který jim tam způsobí tu chybu..

Co se vkládá do tý proměnný $data?? Opravdu jen string?
xROAL
Profil
quatzael:
Co se vkládá do tý proměnný $data?? Opravdu jen string?
String v tvare key1=value1&key2=value2... (ako query string, bez prvého otáznika) ak sa nepletiem.
Keeehi
Profil
quatzael:
Taky to může být třeba asociativní pole. Curl je u této hodnoty celkem benevolentní. Co se tam může a má dávet je popsané v dokumentaci.
quatzael
Profil
xROAL, Keeehi:
No ta proměnná $data obsahuje čistý SOAP request. Tedy něco takového:
$data = "<soap:Envelope> ... soap obsah ... </soap:Envelope>"; 
Takhle mi to poradil kolega vedle ve vlákně.
Takhle to každopádně potřebuju poslat.
Navíc takhle je to i v tom komentáři v dokumentaci na php.net.
quatzael
Profil
xROAL, Keeehi:
Zkusil jsem tu proměnnou dát do simplexml:
$data = simplexml_load_string($data); 

Ale teď to zase hází chybu:
Bad Request - Invalid Header
--------------------------------------------------------------------------------
HTTP Error 400. The request has an invalid header name.

Přitom tam mám: Content-Type: text/xml. Je to špatně?


Tak nejspíš tam to: "Content-length: ".strlen($data) Protože $data už není string.. Dá se nějak uvést "délka" pokud se jedná o objekt, nebo co to je..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: