Ik ben al een tijdje aan het proberen een HTTP POST die in een C++ applicatie wordt gegenereerd naar een PHP script te posten:
De HTTP Post ziet er als volgt uit.
Dit wordt naar een PHP script gestuurd die vervolgens de GET, POST en POST files vars naar een file schrijft.
De HTTP POST komt goed aan en de logfile ziet er als volgt uit:
Zoals je ziet ziet het PHP script alleen de GET var en niet de post vars. Op een of andere manier is mijn POST dus niet wel-formed. Ik heb gekekeken hoe IE een POST doet en daar mijn POST grotendeels van afgeleid. Alleen de velden Accept en User-Agent heb ik niet meeverzonden.
Overigens heb ik ook geprobeerd vanuit VB deze HTTP POST te sturen dus het lijkt mij onwaarschijnlijk dat het aan de C++ code ligt.
Is HTTP POST niet correct of moet ik bepaalde headers toch meegeven?
De HTTP Post ziet er als volgt uit.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| POST /maintenance/test/post.php?PRINTFORM HTTP/1.1 Content-Type: multipart/form-data; boundary=-----------------------------7d32bc39a10 Host: 192.168.100.3:9494 Connection: Keep-Alive Content-Length: 281 -----------------------------7d32bc39a10 Content-Disposition: form-data; name="POSTVAR" html -----------------------------7d32bc39a10 Content-Disposition: form-data; name="filename"; filename="c:\test.xml" Content-Type: text/xml post data -----------------------------7d32bc39a10 |
Dit wordt naar een PHP script gestuurd die vervolgens de GET, POST en POST files vars naar een file schrijft.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| ob_start(); echo "POST FILES:\r\n"; print_r($HTTP_POST_FILES); echo "GET VARS:\r\n"; print_r($HTTP_GET_VARS); echo "POST VARS:\r\n"; print_r($HTTP_POST_VARS); $buffer = ob_get_contents(); ob_end_clean(); // Schrijf vars in file $fp = fopen('post.log', 'w'); fwrite($fp, $buffer); fclose($fp); |
De HTTP POST komt goed aan en de logfile ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| POST FILES: Array ( ) GET VARS: Array ( [PRINTFORM] => ) POST VARS: Array ( ) |
Zoals je ziet ziet het PHP script alleen de GET var en niet de post vars. Op een of andere manier is mijn POST dus niet wel-formed. Ik heb gekekeken hoe IE een POST doet en daar mijn POST grotendeels van afgeleid. Alleen de velden Accept en User-Agent heb ik niet meeverzonden.
Overigens heb ik ook geprobeerd vanuit VB deze HTTP POST te sturen dus het lijkt mij onwaarschijnlijk dat het aan de C++ code ligt.
Is HTTP POST niet correct of moet ik bepaalde headers toch meegeven?
[ Voor 4% gewijzigd door pjonk op 16-10-2003 11:00 ]
It’s nice to be important but it’s more important to be nice