Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Посылка HTTP post запросов 
:(
    Опции темы
0x00
Дата 14.7.2006, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



саб.. есть ли у кого готовые примеры, поделитесь пожайлуста. 
PM MAIL   Вверх
Step
Дата 16.7.2006, 04:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



а в чем проблема?
собрал контекст запроса
приконектился на 80 порт сервака
и послал туда все

или проблема в том как формируется пост запрос? 


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Rickert
Дата 20.7.2006, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Степ, приведи рабочий листинг программы коннекта и получения содержимого файла "https://stats.mobiltime.ru/akula/25205.txt"
Я никак не могу разобраться со всем этим: ка инициализировать и послать запрос, нигде нормально не написано.
 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
0x00
Дата 21.7.2006, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



я с этим сталкнулся и решил проблему... вот рабочий пример...

Код

//======================================================
#include <winsock2.h>
#include <windows.h>
//======================================================
#pragma comment(lib, "ws2_32.lib")
//======================================================
SOCKET Connect(char *Host, short port){
    
    WSADATA                wsaData;
    SOCKET                Winsock;
    struct sockaddr_in    Winsock_In;
    struct hostent        *Ip;
    
    WSAStartup(MAKEWORD(2, 2), &wsaData);
    Winsock=WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, (unsigned int)NULL, (unsigned int)NULL);
    if(Winsock == INVALID_SOCKET){
        WSACleanup();
        return -1;
    }
    Ip = gethostbyname(Host);
    Winsock_In.sin_port = htons(port);
    Winsock_In.sin_family = AF_INET;
    Winsock_In.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)Ip->h_addr)));
    if(WSAConnect(Winsock, (SOCKADDR*)&Winsock_In, sizeof(Winsock_In), NULL, NULL, NULL, NULL) == SOCKET_ERROR){
        WSACleanup();
        return -1;
    }
return Winsock;
}
//======================================================
int main(void){

    char        packet[1024];
    char        param[128];
    SOCKET    socket;

    wsprintf(param, "name=ivan&[email protected]&mess=privet+mir&button=send");
    wsprintf(packet, "POST /guestbook.php HTTP/1.0\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\r\nAccept: */*\r\nHost: site.ru\r\nContent-type: application/x-www-form-urlencoded\r\nContent-length: %d\r\n\r\n%s", (int)strlen(param), param);

    socket = Connect("site.ru", 80);
    if(socket == -1){
        return 0;
    }
    send(socket, packet, (int)strlen(packet), 0);
return 0;
}

//======================================================
 
PM MAIL   Вверх
Rickert
Дата 21.7.2006, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



0x00
Ты заметил, что протокол https, а не http?
Плюс возможен прокси. Точнее не возможен, а нужно через прокси. 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
0x00
Дата 21.7.2006, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



Цитата(Rcikert @ 21.7.2006,  04:22)
0x00
Ты заметил, что протокол https, а не http?
Плюс возможен прокси. Точнее не возможен, а нужно через прокси.

хм. тогда надо читать доки по протоколу. для реализации моей программы вполне хватило этотго ;) 
PM MAIL   Вверх
jonie
Дата 23.7.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



да возьмите готовое.... материал с codeproject.com.
я его чуток переделывал, но тут не переделанное.
используйте WinInetAPI или тотже curl в связке с OpenSSL и не парьте моск с сокетами.
Код


        if(!SecureInput){
            //insecure https connection!
            DWORD sbufsize=4;
            DWORD sbuf=0;
            InternetQueryOption(_hRequest,INTERNET_OPTION_SECURITY_FLAGS,&sbuf,&sbufsize);
            sbuf|=SECURITY_FLAG_IGNORE_UNKNOWN_CA|SECURITY_FLAG_IGNORE_CERT_CN_INVALID |SECURITY_FLAG_IGNORE_CERT_DATE_INVALID;
            InternetSetOption  (_hRequest,INTERNET_OPTION_SECURITY_FLAGS,&sbuf,sbufsize);
        }
это добавьте для "глюченных" сертификатов (флаги сами расставьте), где _hRequest=::HttpOpenRequest(.....)...... 

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  net.ra0 7,88 Kb


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Step
Дата 23.7.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



Цитата(Rcikert @  20.7.2006,  08:52 Найти цитируемый пост)
Степ, приведи рабочий листинг программы коннекта и получения содержимого файла "https://stats.mobiltime.ru/akula/25205.txt"Я никак не могу разобраться со всем этим: ка инициализировать и послать запрос, нигде нормально не написано.

если еще интересует, пиши на ящик я тебе вышлю класс для работы с шттпс, при необходимости прокся с авторизацией или без, и даже с применением клиентских сертификатов для авторизации, писал сам год назад, потом запросил но работало 

использовал для доступа к вмз-ному лайту, автоматический выбор состояния счета, и еще для одного сайта но туда я еще впихнул хмлрпц, вот только одна проблема регулярные я там использовал не стандартные а свои писал стандартные долго работали 


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Link90
Дата 10.8.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Битый" пиксель
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 25.11.2005
Где: Иркутск - середин а земли!

Репутация: нет
Всего: 7



Step, Отправь мне тоже, плиз! link90 [собака] mail [точка] ru
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.