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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отправка http запроса, http запрос 
:(
    Опции темы
csander
Дата 10.11.2008, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите пожалуйста, как реализовать вот такую задачу?
Нужно по нажатию кнопки отправить http запрос, например такого вида: "http://localhost/test.php?a=1&b=2". 
PM MAIL   Вверх
MAKCim
Дата 10.11.2008, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



csander, 
ну создаешь TCP сокет
коннектишься к 80-му порту localhost-а
оформляешь HTTP заголовок с нужным запросом (GET, POST)
отправляешь данные


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
csander
Дата 10.11.2008, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



можешь пример кода дать? или ссылку?
PM MAIL   Вверх
MoLeX
Дата 10.11.2008, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



csander, вот пример скачки файла с веб сервера открытого на 80 порту
Код

        TFileStream *file_str = new TFileStream("123.mp3", fmCreate);
        Edit1 -> Text = size_t(file_str);
        IdHTTP -> Get("http://192.168.191.46:80/123.mp3", file_str);
        delete file_str;


если тебе нужно чтобы результат сохранился то почти не чего менять не надо кроме адресса

Это сообщение отредактировал(а) MoLeX - 10.11.2008, 09:26


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
csander
Дата 10.11.2008, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



какую библиотеку надо подключить? ))
PM MAIL   Вверх
MoLeX
Дата 10.11.2008, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



csander, извени забыл сказать... загружать билдер лень, в виде исходника выложил

Присоединённый файл ( Кол-во скачиваний: 38 )
Присоединённый файл  Downloader.rar 26,15 Kb


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
csander
Дата 10.11.2008, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



user posted image

че это такое? выходит при компиляции

Это сообщение отредактировал(а) csander - 10.11.2008, 10:00
PM MAIL   Вверх
MoLeX
Дата 10.11.2008, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



эмн... не знаю(((

Добавлено через 36 секунд
у тебя какая среда? у меня просто Builder 6 может из-за него

Добавлено через 1 минуту и 45 секунд
Цитата(csander @  10.11.2008,  09:43 Найти цитируемый пост)
какую библиотеку надо подключить? )) 

компонент IdHttp c вкладки IndyClients


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
smoke_man
Дата 10.11.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот пример работы через сокеты по протоколу HTTP
Код

#include <winsock2.h>
#include <iostream>
#include <string>



int main()
{  
    //Пакет запроса по HTTP протоколу
    std::string  packet;
    //Структура для настройки сокета
    sockaddr_in SA;
    SOCKET Sock;
    // поехали
    //1)  заполняем протокол запроса
    packet="GET /test.php?a=1&b=2 HTTP/1.1 \r\n\
           Accept: text/html, */* \r\n\
           Accept-Language: ru \r\n\
           Accept-Encoding: identity \r\n\
           User-Agent: Mozilla/3.0 (compatible; Indy Library) \r\n\
           Host: 127.0.0.1 \r\n\
           Connection: Keep-Alive \r\n\r\n" ;
    //настраиваем сокет
    SA.sin_family=AF_INET;
    SA.sin_port=htons(80);
    SA.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
    //2) собственно сами действия
    WSAData WSData;
    WSAStartup(MAKEWORD(2,0), &WSData);
    //Создаем сокет и проверяем на ошибку
    Sock = socket(AF_INET,SOCK_STREAM,0);
    if (Sock==0) 
    {
        std::cout<<"Error socket"<<std::endl;
        return -1;
    }
    //Конектимся к серверу
    if (connect(Sock,(sockaddr*)&SA,sizeof(SA))==-1) 
    {
        std::cout<<"Error connect"<<std::endl;
        return -1;
    }

    //Шлем пакет    
    send(Sock,packet.c_str(),int(packet.length()),0);

    //Закрываем соект
    closesocket(Sock);
    WSACleanup();
}



Это сообщение отредактировал(а) smoke_man - 10.11.2008, 11:13


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
xvr
Дата 10.11.2008, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(csander @ 10.11.2008,  08:31)
Подскажите пожалуйста, как реализовать вот такую задачу?
Нужно по нажатию кнопки отправить http запрос, например такого вида: "http://localhost/test.php?a=1&b=2".

Тебе нужны шашечки или ехать? Если второе - то возьми готовые компоненты:
  •  Под BCB уже упоминавшийся тут Indy (хотя он и не без глюков)
  •  Под VC можно заюзать wininet.dll (за ним - в MSDN)

PM MAIL   Вверх
DRUG_ADDICT
Дата 30.11.2008, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smoke_man, компилирую... вылазит это:

Код

\123.o:123.cpp:(.text+0x1ac)||undefined reference to `_htons@4'|
\123.o:123.cpp:(.text+0x1bf)||undefined reference to `_inet_addr@4'|
\123.o:123.cpp:(.text+0x1db)||undefined reference to `_WSAStartup@8'|
\123.o:123.cpp:(.text+0x1fa)||undefined reference to `_socket@12'|
\123.o:123.cpp:(.text+0x272)||undefined reference to `_connect@12'|
\123.o:123.cpp:(.text+0x309)||undefined reference to `_send@16'|
\123.o:123.cpp:(.text+0x317)||undefined reference to `_closesocket@4'|
\123.o:123.cpp:(.text+0x31f)||undefined reference to `_WSACleanup@0'|
||=== Build finished: 8 errors, 0 warnings ===|

помогите плиз... че не так? гугл молчит <censored>.

Это сообщение отредактировал(а) Олег2005 - 1.12.2008, 11:18
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
J0ker
Дата 30.11.2008, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(DRUG_ADDICT @ 30.11.2008,  03:19)
smoke_man, компилирую... вылазит это:

Код

\123.o:123.cpp:(.text+0x1ac)||undefined reference to `_htons@4'|
\123.o:123.cpp:(.text+0x1bf)||undefined reference to `_inet_addr@4'|
\123.o:123.cpp:(.text+0x1db)||undefined reference to `_WSAStartup@8'|
\123.o:123.cpp:(.text+0x1fa)||undefined reference to `_socket@12'|
\123.o:123.cpp:(.text+0x272)||undefined reference to `_connect@12'|
\123.o:123.cpp:(.text+0x309)||undefined reference to `_send@16'|
\123.o:123.cpp:(.text+0x317)||undefined reference to `_closesocket@4'|
\123.o:123.cpp:(.text+0x31f)||undefined reference to `_WSACleanup@0'|
||=== Build finished: 8 errors, 0 warnings ===|

помогите плиз... че не так? гугл молчит <censored>...

я вот не понимаю, неужели так трудно посмотреть хелп??? ведь гораздо быстрее чем лезть на форум

Код

Library    Use Ws2_32.lib.
 


Цитата(DRUG_ADDICT @  30.11.2008,  03:19 Найти цитируемый пост)
гугл молчит <censored>.... 

да неужели

Это сообщение отредактировал(а) Олег2005 - 1.12.2008, 11:19


--------------------
user posted image
PM MAIL   Вверх
DRUG_ADDICT
Дата 1.12.2008, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



хорошо спасибо... 

а теперь что??? 

Код

[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '_main' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0X32.OBJ

извините меня конечно но в С++ когда нибудь что нибудь нормально компилируется или вот так всегда? только не надо меня винить пжлст, я вот увидел здесь на форуме эти исподники захотел их скомпилировать... и вот надо же прикол =)

Компилировал через Dev-C++ затем через Code::Blocks вот вчера скачал Borland C++ Builder 6 теперь такая ошибка... 


J0ker, а что ты там пишешь про хелпы свои? знаешь... если бы я знал где твои хелпы мне искать и как сними работать... поверь я бы сюда даже не заходил.

Добавлено через 3 минуты и 6 секунд
Решение:
Цитата

Вопрос ===============================================
16. При компиляции проекта я получаю сообщение линковщика "Unresolved external" с именем функции и указанием модуля. Как решить проблему?
Ответ ================================================
Данная ошибка говорит о том, что линковщик нашел объявление функции и функция используется в программе, но отсутствует модуль в котором эта функция реализована. Что бы устранить ошибку необходимо:
1. Ознакомиться в MSDN(http://msdn.microsoft.com) или в разделе справки билдера Windows SDK (Help\Windows SDK) с описанием функции. В конце описания как правило указывается из какого .lib файла данная функция экспортируется.
2. Зайти в папку $(BCB)\lib\psdk и найти необходимый файл.
3. Если файл найден - через Project\Add to project (или Shift+F11) добавить его в проект. Запустить компиляцию, ошибка исчезнет. Иначе следующий шаг.
4. Найдите .dll с таким же названием в системной папке.
5. Скопируйте в папку проекта.
6. Выполните утилиту $(BCB)\Bin\coff2omf c параметрами командной строки вида coff2omf dllname.dll dllnamebcb.dll
7. С получившимся файлом используйте утилиту $(BCB)\Bin\implib.exe, т.е.
implib dllnamebcb.dll dllnamebcb.lib
8. Полученую библиотеку прилинкуйте к проекту как в шаге третьем.
Кстати, я предпочитаю создавать либы а не использовать борландовские.

нет, если действительно в С++ так всегда, хых, в топку его =))) 

Это сообщение отредактировал(а) DRUG_ADDICT - 1.12.2008, 00:13
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
DRUG_ADDICT
Дата 1.12.2008, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 smile  smile  smile<censored>. захожу на http://msdn.microsoft.com/ru-ru/visualc/aa336457.aspx в поиск в биваю InitVCL или ExitVCL не че не находит smile захожу в C++ Builder 6 там Help => Windows SDK в поиске набираю InitVCL или ExitVCL  smile  smile  smile 

Это сообщение отредактировал(а) Олег2005 - 1.12.2008, 11:20
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
J0ker
Дата 1.12.2008, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(DRUG_ADDICT @  1.12.2008,  00:12 Найти цитируемый пост)
извините меня конечно но в С++ когда нибудь что нибудь нормально компилируется или вот так всегда?

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

Цитата(DRUG_ADDICT @  1.12.2008,  00:12 Найти цитируемый пост)
если бы я знал где твои хелпы мне искать и как сними работать...

мои??? это шутко такой, да?

Цитата(DRUG_ADDICT @  1.12.2008,  00:12 Найти цитируемый пост)
нет, если действительно в С++ так всегда, хых, в топку его =))) 

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

Цитата(DRUG_ADDICT @  1.12.2008,  01:27 Найти цитируемый пост)
ахожу в C++ Builder 6 там Help => Windows SDK в поиске набираю InitVCL или ExitVCL

http://en.wikipedia.org/wiki/Visual_Component_Library
VCL никакого отношения к winSDK не имеет - это борландовская библиотека - там и смотри какие либы надо подключить - я с борландом не работаю

ЗЫЖ всех бы вас взять за одно место и на vi и gcc посадить, и пока основ не выучите - на винду не пущать  smile 


--------------------
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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