Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cURL error
Forum PHP.pl > Forum > PHP
Ilware
Witam wszystkich serdecznie,

wywołanie cURL'a

  1. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


wyświetla błąd

Curl error: Failure when receiving data from the peer
czy ktoś wie może dlaczego?

nagłówki
  1. "POST /app/ecas/eCASOrderWS.asmx HTTP/1.1",
  2. "Content-Type: text/xml; charset=utf-8",
  3. "Host: 2.48.44.27",
  4. "SOAPAction: \"eCASOrderWS/DodajZlecenieWS\"",
  5. "Content-length: ".strlen($nag.$str)
cycofiasz
Dlaczego używasz do tego curla? Nie lepiej SoapClient?
Ilware
może i lepiej ale

  1. $client = new
  2. SoapClient(
  3. "http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx");


wyświetla błąd


Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx' : Premature end of data in tag html line 3 in C:\wamp\www\sites\all\modules\contrib\pay\pay.module:245 Stack trace: #0 C:\wamp\www\sites\all\modules\contrib\pay\pay.module(245): SoapClient->SoapClient('http://webapps....') #1 C:\wamp\www\sites\all\modules\contrib\pay\pay.module(48): plik_soap(2) #2 [internal function]: pay_obsluga() #3 C:\wamp\www\includes\menu.inc(348): call_user_func_array('pay_obsluga', Array) #4 C:\wamp\www\index.php(18): menu_execute_active_handler() #5 {main}thrown in C:\wamp\www\sites\all\modules\contrib\pay\pay.module on line 245

poprzednio miałem wywołanie takie:

  1. $ch = curl_init();
  2. $temp ="@/sites/default/files/".$r['nr_listu'].".xml";
  3. $data = array('name' => $r['nr_listu'], 'file' => $temp);
  4. curl_setopt($ch, CURLOPT_URL, "http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx");
  5. curl_setopt($ch, CURLOPT_POST, 1);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  7. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  8. curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
  9. $headers = array(
  10. "POST <a href="http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx" target="_blank">http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx</a> HTTP/1.1",
  11. "Content-Type: text/xml; charset=utf-8",
  12. "Host: 2.48.44.27",
  13. "SOAPAction: \"eCASOrderWS.asmx?op=DodajZlecenieWS\"",
  14. "Content-length: ".strlen($str)
  15. );
  16. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  17. $result = curl_exec ($ch);
  18. if(!curl_errno($ch)){
  19. $info = curl_getinfo($ch);
  20. return 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
  21. } else {
  22. return 'Curl error: ' . curl_error($ch);
  23. }
  24.  
  25. curl_close ($ch);


męczę się z tym już od 3 dni, nikt nie potrafi stwierdzić co jest źle a w DHL'u nie ma informatyka :/
vermis
Bo adres pliku wsdl jest taki:
Kod
http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx?WSDL

a Ty masz inny, więc nie działa.
Ilware
czy ktoś wie jak się używa SoapClient?nie mam z tym zupełnie doświadczenia.Z dokumentacji php.net nie umiem tego uruchomić, w skrócie muszę już stworzony plik xml przesłać na serwer i w odpowiedzi dostanę jakieś dane zależnie od stanu czy zlecenie zostało przyjęte czy nie jak nie to rodzaj błędu


  1.  
  2. $temp ="/sites/default/files/".$r['nr_listu'].".xml";
  3. $client = new SoapClient("http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx?WSDL",
  4. array('location'=>$temp,
  5. 'uri'=>'http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx?WSDL'));
  6. return $client;


dobrze myślę?tak to powinno być?

po paru próbach znalazłem funkcję udostępnioną przez dhl tyle że nadal wyświetla błąd:

  1. $client = new SoapClient("http://webapps.dhl.com.pl/app/ecas/eCASOrderWS.asmx?WSDL");
  2. $headerss[] = new SoapHeader(
  3. "POST /app/ecas/eCASOrderWS.asmx HTTP/1.1",
  4. "Content-Type: text/xml; charset=utf-8",
  5. "Host: 2.48.44.27",
  6. "SOAPAction: \"eCASOrderWS/DodajZlecenieWS\"",
  7. "Content-length: ".strlen($str));
  8. $client->__setSoapHeaders($headerss);
  9. $client->DodajZlecenieWS($temp);


gdzie $temp to ścieżka do pliku xml

błąd to

Fatal error: Uncaught SoapFault exception: [HTTP] Error Fetching http headers in C:\wamp\www\sites\all\modules\contrib\pay\pay.module:259 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://2.48.44....', 'eCASOrderWS/Dod...', 1, 0) #1 C:\wamp\www\sites\all\modules\contrib\pay\pay.module(259): SoapClient->__call('DodajZlecenieWS', Array) #2 C:\wamp\www\sites\all\modules\contrib\pay\pay.module(259): SoapClient->DodajZlecenieWS('string Firma; s...') #3 C:\wamp\www\sites\all\modules\contrib\pay\pay.module(48): plik_soap(2) #4 [internal function]: pay_obsluga() #5 C:\wamp\www\includes\menu.inc(348): call_user_func_array('pay_obsluga', Array) #6 C:\wamp\www\index.php(18): menu_execute_active_handler() #7 {main} thrown in C:\wamp\www\sites\all\modules\contrib\pay\pay.module on line 259
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.