Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Не получается отправить файл /POST


Автор: Феликс 5.8.2007, 17:03
Вот так вот отправляю файлы на сервер! На сервере всё отлично работает. Если прогу закинуть на другой хост то программа не работает!
Код

HINTERNET io = InternetOpen("Microsoft Internet Explorer",INTERNET_OPEN_TYPE_PRECONFIG, NULL,NULL,0);
HINTERNET ic = InternetConnect(io,"195.162.35.145",80,NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
HINTERNET ir = HttpOpenRequest(ic,"POST", "upload.php?dir=D:\\1.txt&file=1.txt", "HTTP/1.0", NULL, 0,INTERNET_FLAG_KEEP_CONNECTION, 1);
BOOL is = HttpSendRequest(ir, hdrs, strlen(hdrs),0,0);
InternetCloseHandle(ir);
InternetCloseHandle(ic);
InternetCloseHandle(io);


Перечитал все примеры и все топики по данной теме! Но увы факт остаётся фактом, программа не работает.
Помогите пожалуйста исправить код или предложите что нибудь.
Заранее спасибо!

Автор: W4FhLF 5.8.2007, 18:56
Ну кто ж так код пишет? У тебя ниодной проверки нет в коде. Посмотри, что должны возвращать эти функции при успешном исполнении и при исполнении с ошибками; поставь условия; вывод сообщения при ошибках. Локализуешь проблему, а дальше уже по ситуации. 

Код

HINTERNET io = InternetOpen("Microsoft Internet Explorer",INTERNET_OPEN_TYPE_PRECONFIG, NULL,NULL,0);

if (io != NULL) {
    HINTERNET ic = InternetConnect(io,"195.162.35.145",80,NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
    
    if (ic != NULL) {
        HINTERNET ir = HttpOpenRequest(ic,"POST", "upload.php?dir=D:\\1.txt&file=1.txt", "HTTP/1.0", NULL, 0,INTERNET_FLAG_KEEP_CONNECTION, 1);
        
        if (ir != NULL) {
        
            if (!HttpSendRequest(ir, hdrs, strlen(hdrs),0,0))
                printf("Error in HttpSendRequest function. GetLastError: %d", GetLastError());
                
        } else
            printf("Error in HttpOpenRequest function. GetLastError: %d", GetLastError());
    
        InternetCloseHandle(ir);            
        
    } else
        printf("Error in InternetConnect function. GetLastError: %d", GetLastError());
        
    InternetCloseHandle(ic);        
    
} else
    printf("Error in InternetOpen function. GetLastError: %d", GetLastError());

InternetCloseHandle(io);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)