Привтествую. В общем интересует сабж. Есть сервак, на нем крутится скрипт. Нужно передать скрипту данные методом POST. Делал через wininet - возврается веб-страница ;( Приведите пример. На любом языке, можно через сокеты, лишь бы работало
вот пример cpp+wininet Код (Text): void SendPostRequest(char *data) { HINTERNET hSession = InternetOpen("post_example", LOCAL_INTERNET_ACCESS, NULL, INTERNET_INVALID_PORT_NUMBER, INTERNET_FLAG_DONT_CACHE); HINTERNET hConnect = InternetConnect(hSession, "wasm.ru", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, NULL, NULL); if (hConnect == NULL) goto end; HINTERNET hRequest = HttpOpenRequest(hConnect, "POST", "index.php", NULL, NULL, NULL, NULL, NULL); if (hRequest == NULL) goto end; char post_data[255]; strcpy(post_data, "ok="); strcat(post_data, data); char *headers = "Content-Type: application/x-www-form-urlencoded"; HttpSendRequest(hRequest, headers, strlen(headers), post_data, strlen(post_data)); end: if (hRequest) InternetCloseHandle(hRequest); if (hConnect) InternetCloseHandle(hConnect); if (hSession) InternetCloseHandle(hSession); }
тоже сабж понадобился, можно ли отправить файл по HTTP и без заморочек? три дня разбирался почему PUT не работает (хост возвращает "метод не разрешен") и как его "включить", так и не получилось... потом начал уже пхп изучать собрал скрипт: Код (Text): <?php if ($file) { if ($data = file_get_contents("php://input")) { $base = fopen($file, "w"); fwrite($base, $data); fclose($base); } } ?> попробовал отправлять данные без кодирования в application/x-www-form-urlencoded: Код (Text): stdcall [send],ebx,post,post$,0 post db 'POST /put.php?file=test.bin HTTP/1.0',13,10,\ 'Host: microsoft.com',13,10,\ 'Content-Length: 256',13,10,\ 'Connection: Close',13,10,13,10 times 256 db %-1 post$ = $-post и болт, т.е. 256 байт принимаются, но коверкаются... зачем возится с multipart/form-data тоже не понимаю, можно ли из пхп как-то достучатся до сокета и прочитать самому то что передано?