Arsa |
Отправлено: 24.10.2006, 12:36 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 77
|
Помогите составить запрос на ссылку:
HTML | http://bnm.md/apps/ofexch_xml.jsp?lang=2&data=10/23/2006 |
Делаю все через винсок.
Блин задолбался уже юзать интернет в поиске ответа!
Зарание всем спасибо! |
|
Юрий |
Отправлено: 24.10.2006, 13:02 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
На примере Builder C++6 ent это достигается таким способом:
void __fastcall TInet::Site1Click(TObject *Sender)
{
ShellExecute(Inet->Handle,"Open",Site1->Caption.c_str(),
NULL,NULL,SW_RESTORE);
}
В свойствах на вкладке Caption прописывайте http://bnm.md/apps/ofexch_xml.jsp?lang=2&d...data=10/23/2006
|
|
__Cheat3r |
Отправлено: 24.10.2006, 13:33 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 110
|
Юрий, чё к чему? |
|
Arsa |
Отправлено: 24.10.2006, 14:25 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 77
|
Да ничего здесь к никчему. Так просто окроется ссылка в браузере по умолчанию. Я же говорю, что через WinSock делаю и помочь мне надо в составление загаловка запроса! |
|
AVC |
Отправлено: 24.10.2006, 14:55 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE (Arsa @ 24.10.2006, 14:25) | Я же говорю, что через WinSock делаю и помочь мне надо в составление загаловка запроса! |
Запускаем первый встречный сниффер, набираем в броузере эту ссылку и получаем текст запроса
Это было нужно? |
|
Arsa |
Отправлено: 24.10.2006, 15:34 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 77
|
Ну вот что у меня получается — не то что надо:
CODE |
WSADATA lpWSAData;
SOCKET s;
AnsiString query;
query += "GET http://bnm.md/apps/ofexch_xml.jsp?lang=2 HTTP/1.0\r\n";
query += "Accept: */*\r\n";
query += "Accept-Language: ru \r\n";
query += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
query += "Host: bnm.md\r\n";
query += "Proxy-Connection: Keep-Alive\r\n\r\n";
/ Инициализация библиотеки Ws2_32.dll.
if (WSAStartup(MAKEWORD(2,2),&lpWSAData)!=0){
ShowMessage("Не могу подключить библиотеку!");
return;
}
// Поучаем IP адрес по имени хоста
struct hostent* hp;
hp=gethostbyname("bnm.md");
// Открываем сокет
s=socket(AF_INET, SOCK_STREAM, 0);
if (s==INVALID_SOCKET){
ShowMessage("Не могу открыть сокет");
return;
}
// Заполняем структуру sockaddr_in
struct sockaddr_in ssin;
memset ((char *)&ssin, 0, sizeof(ssin));
ssin.sin_family = AF_INET;
ssin.sin_addr.S_un.S_un_b.s_b1 = hp->h_addr[0];
ssin.sin_addr.S_un.S_un_b.s_b2 = hp->h_addr[1];
ssin.sin_addr.S_un.S_un_b.s_b3 = hp->h_addr[2];
ssin.sin_addr.S_un.S_un_b.s_b4 = hp->h_addr[3];
ssin.sin_port = htons(80);
// Соединяемся с хостом
if(connect(s, (sockaddr *)&ssin, sizeof(ssin))==-1){
ShowMessage("Не удалось соединиться с хостом!");
return;
}
// Отправляем запрос серверу
int cnt=send(s,query.c_str(),query.Length(),0);
// Проверяем, не произошло ли ошибки при отправке запроса на сервер
if (cnt==SOCKET_ERROR){
ShowMessage("Произошла ошибка при отправке запроса на сервер!");
return;
}
// Получаем ответ с сервера ---------------------------------
int rr=1;
char result_ptr[1000000];
AnsiString xml = "";
do{
rr = recv(s, result_ptr, sizeof(result_ptr),0);
if(rr > 0){
xml = (xml+ result_ptr).c_str();
}
//free(result_ptr);
}while(rr != 0);
free(result_ptr);
// Деинициализация библиотеки Ws2_32.dll
WSACleanup();
ShowMessage(xml); | |
|
Arsa |
Отправлено: 24.10.2006, 15:36 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 77
|
AVC попробуй у себя мой пример и сам все увидишь! |
|
Arsa |
Отправлено: 24.10.2006, 16:01 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 77
|
Ну наконец разобрался! Ура!!! |
|
AVC |
Отправлено: 24.10.2006, 16:45 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Попробовал, правда, простите, не ваш пример а своим кодом и получил ответ (что предсказуемо ).
Код запроса
CODE |
void __fastcall TForm1::Button10Click(TObject *Sender)
{
SOCKET sock = INVALID_SOCKET;
Memo1->Lines->Add(
HttpPostExecute
(sock
,"10.111.96.240"
,8080
,"\
GET http://bnm.md/apps/ofexch_xml.jsp?lang=2 HTTP/1.0\r\n\
Accept: */*\r\n\
Accept-Language: ru\r\n\
Pragma: no-cache\r\n\
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MRA4.2 (build 01102))\r\n\
Host: bnm.md\r\n\
Proxy-Connection: Keep-Alive\r\n\
\r\n\
"
,15000
)
);
|
Ответ
CODE |
HTTP/1.0 200 OK
Date: Tue, 24 Oct 2006 13:27:09 GMT
Server: Apache
Set-Cookie: JSESSIONID=4FAB84C897282F8CEF09E0759A91B339; Path=/
Content-Length: 6524
Content-Type: text/html
X-Cache: MISS from energo.yaltaonline.net
Proxy-Connection: keep-alive
<?xml version="1.0" encoding="windows-1250" ?>
<ValCurs Date="10/24/2006" name="Official exchange rate">
<Valute ID="35">
<NumCode>946</NumCode>
<CharCode>RON</CharCode>
<Nominal>1</Nominal>
<Name>Romanian Leu</Name>
<Value>4.7023</Value>
</Valute>
...
|
|
|
Arsa |
Отправлено: 24.10.2006, 16:51 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 77
|
QUOTE | Попробовал, правда, простите, не ваш пример |
На мой пример сервак ругался, ну впрочем я уже разобрался почему! |
|
aquanet sk |
Отправлено: 23.02.2007, 13:00 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 87
|
Да, ну и почему? |
|
Arsa |
Отправлено: 23.02.2007, 21:45 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 77
|
Уже и не помню ...
Сколько времени то прошло с того момента! |
|