Próbuję wysłać żądanie do serwera WWW za pomocą php i curl. Nie zrobiłem czegoś takiego wcześniej i chociaż istnieje wiele miłych przykładów w Internecie, mam pewne trudności ze zrozumieniem niektórych poleceń curl.Wysyłaj żądanie wpisu XML do serwera WWW za pomocą CURL
Oto, co chcę zrobić: istnieje ustalony serwis internetowy (na przykład: usługa map internetowych) i chcę, aby mój kod php przesłał żądanie XML postu do tej usługi. Jako odpowiedź chcę uzyskać plik XML.
To jest to, co mam do tej pory:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
/*curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));*/
/* curl_setopt($ch, CURLOPT_HEADER, 0);*/
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
/*curl_setopt($ch, CURLOPT_REFERER, '');*/
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ch_result = curl_exec($ch);
curl_close($ch);
echo $ch_result;
Jak powiedziałem jestem zupełnie nowy w php, a także za pomocą curl i myślę, że jestem brakuje niektórych pojęć. Moje pytania są następujące: 1) Jaki jest ciąg (link), że muszę umieścić w:
curl_setopt($ch, CURLOPT_URL, '');
Czy nazwa hosta usługi, które chcę wysłać wniosek?
2) W wierszu 6 zmienna $ xml zawiera plik xml, który chcę wysłać jako żądanie. Czy to prawda, czy ta zmienna ma zawierać coś innego?
3) W których przypadkach należy użyć nagłówka httphead lub nagłówka (wiersz3 i wiersz4);
Dzięki za pomoc. Dimitris
Więc wewnątrz tagów kładę cały ciąg xml? –
user1919
Jeśli cały twój xml znajduje się w $ xml, wiersz powinien wyglądać następująco: curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ xml); – PKeidel
Inną rzeczą, której nie zrozumiałem wyraźnie, jest zawartość zmiennej $ url. Czy nazwa hosta serwera, do którego wyślę żądanie? – user1919