Autor Zpráva
Chuchycek
Profil
Ahoj,
už se s tím trápím celý den a za boha nemohu najít nic kloudného, co by mi pomohlo (špatně hledám), ale potřeboval bych poradit, potřebuji odeslat pomocí HTTP POST
POST /webservice.asmx/InsertPerson HTTP/1.1
Host: exaple.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

Gender=string&AgeId=string&DegreeId=string&IsDegreeCopleted=string&Email=string&DimensionId1=string&DimensionId2=string&DimensionId3=string&DimensionId4=string&DimensionId5=string&PriorityId=string

na server a zpátky příjmout zpracovanou zprávu v xml.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example.com/webservice.asmx?op=InsertPerson");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "POST /webservice.asmx/InsertPerson HTTP/1.1
Host: 062.988.myftpupload.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

Gender=string&AgeId=string&DegreeId=string&IsDegreeCopleted=string&Email=string&DimensionId1=string&DimensionId2=string&DimensionId3=string&DimensionId4=string&DimensionId5=string&PriorityId=string");
curl_exec ($ch);
curl_close ($ch);
Majkl578
Profil
CURLOPT_POSTFIELDS očekává buď url-encoded variantu (tj. ta varianta s & a =) nebo pole (které je vhodnější pokud hodnoty dosazuješ dynamicky). Mělo by to vypadat nějak takto:

$ch = curl_init('http://example.com/webservice.asmx/InsertPerson');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'Gender' => 'string',
    'AgeId' => 'string',
    'DegreeId' => 'string',
    'IsDegreeCopleted' => 'string',
    'Email' => 'string',
    'DimensionId1' => 'string',
    'DimensionId2' => 'string',
    'DimensionId3' => 'string',
    'DimensionId4' => 'string',
    'DimensionId5' => 'string',
    'PriorityId' => 'string'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
Místo hodnot string jsou samozřejmě nějaká reálná data, předpokládám.
V $result bude výsledek, který server vrátí.

EDIT: Opravil jsem volání posledního curl_setopt.
Chuchycek
Profil
Jasný moc děkuji, teď už si s tím poradím :-)
Chuchycek
Profil
Ještě se mi vyskytl jeden problém vrací mi to chybovou hlášku
Warning: curl_setopt() expects exactly 3 parameters, 2 given in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\mtm-carreers\zkouska.php on line 10
boolean false
juriad
Profil
přečti si pořádně řádek 17 a chyť se za hlavu :)
preca1
Profil
Abych nebyl úplně nekonstruktivní: http://php.net/manual/en/function.curl-setopt.php
Chuchycek
Profil
Dobrý, dobrý moje chyba, zbytečně jsem zazmatkoval :-)
Majkl578
Profil
Chyba to byla původně moje, původně jsem zapomněl 1. parametr, který jsem o něco později doplnil (viz poznámku Edit). Pardon. :)
Chuchycek
Profil
Dobrý, byla to moje chyba, kdybych si to pořádně prošel, tak mi to došlo :D

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: