*afgesplitst van [PHP] Curl resultaat gebruiken bij volgende curl sessie
Oud topic, maar ik heb eenzelfde soort issue.
Ik probeer een PDF bestand te downloaden, nadat ik ingelogd heb. Het inloggen lukt, in de response kan ik zien dat ik een HTTP200 terug krijg en wanneer ik de response ECHO, dan zie ik het login scherm. De tweede call lukt echter niet en geeft een header naar de loginpagina, ofwel de tweede curl is niet ingelogd.
Ik heb ook dingetjes geprobeerd zoals:
POST velden leeg halen en GET call doen
Ook heb ik met POST velden de parameters van het pdf bestand gevuld, maar dit maakt geen verschil.
Wanneer ik de cookie bekijk, dan komt volgende eruit:
Voor zover ik kan lezen moet je een COOKIEJAR gebruiken, maar dit gaat volgens mij goed. Anyone any idea??
Oud topic, maar ik heb eenzelfde soort issue.
Ik probeer een PDF bestand te downloaden, nadat ik ingelogd heb. Het inloggen lukt, in de response kan ik zien dat ik een HTTP200 terug krijg en wanneer ik de response ECHO, dan zie ik het login scherm. De tweede call lukt echter niet en geeft een header naar de loginpagina, ofwel de tweede curl is niet ingelogd.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| //login form action url $domain = "https://domein.tld"; $url = "$domain/Login/Login.php"; $postinfo = "Username=".$username."&Password=".$password; $cookiefile = "cookie.txt"; $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_COOKIESESSION, true); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo); $res = curl_exec($ch); if(curl_errno($ch)){ echo 'Curl error: ' . curl_error($ch); } print_r(curl_getinfo($ch)); //downloading pdf file curl_setopt($ch, CURLOPT_URL, "$domain/page/to/pdf/file.php?Order=12345678"); //curl_setopt($ch, CURLOPT_POST, false); //curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //curl_setopt($ch, CURLOPT_SSLVERSION,3); $data = curl_exec($ch); if(curl_errno($ch)){ echo 'Curl error 2: ' . curl_error($ch); } print_r(curl_getinfo($ch)); $destination = dirname(__FILE__) . '/file.pdf'; $file = fopen($destination, "w+"); fputs($file, $data); fclose($file); curl_close($ch); |
Ik heb ook dingetjes geprobeerd zoals:
POST velden leeg halen en GET call doen
code:
1
2
3
| curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_POSTFIELDS, ""); |
Ook heb ik met POST velden de parameters van het pdf bestand gevuld, maar dit maakt geen verschil.
Wanneer ik de cookie bekijk, dan komt volgende eruit:
code:
1
2
3
4
5
6
7
8
| $file = fopen("cookie.txt", 'r'); echo fread($file, 100000000); # Netscape HTTP Cookie File # http://curl.haxx.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. liverutger.securearea.eu FALSE / FALSE 0 PHPSESSID rgi68sacvohtj48vqcsuntq0s6 |
Voor zover ik kan lezen moet je een COOKIEJAR gebruiken, maar dit gaat volgens mij goed. Anyone any idea??
[ Voor 4% gewijzigd door RobIII op 07-11-2016 22:50 ]
20x SF170s + SMA SB3000TL-21 | PV Output