XML запрос?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



XML запрос? Expand / Collapse
Автор
Сообщение
24.10.2006 13:23
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 24.10.2006 17:34
Сообщ.: 4, Visits: 8
Помогите составить xml запрос на урл http://bnm.md/apps/ofexch_xml.jsp?lang=2&d...data=10/23/2006 !

я делал так:

POST http://www.bnm.md/apps/ofexch_xml.jsp HTTP/1.0

Accept: */*\r

Referer: \r
Accept-Language: ru \r

Content-Type: text/xml\r
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r

Connection: Keep-Alive\r\r";

 - но нужно как я понял совсем иначе. Спасибо за внимание!

Сообщ. #906346
24.10.2006 13:54
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Это не XML запрос, а обычный GET запрос возвращающий XML. Подставляем нужную дату в параметр date и получаем ответ в виде строке. Далее можно продолжать работать с ответом как со строкой так подать на вход XML парсеру.

Конкретного ответа дать не могу так как ты забыл сказать на чем ты это делаешь.

Сообщ. #906348
24.10.2006 15:31
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 24.10.2006 17:34
Сообщ.: 4, Visits: 8
Пишу С++, делаю все через WinSock.
Сообщ. #906364
24.10.2006 16:45
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
И в чем именно трудность? По идее должен отработать GET запрос такого вида:

GET /apps/ofexch_xml.jsp?lang=2&data=10/23/2006 HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: bnm.md

В ответ тебе придет xml в виде строки.

Сообщ. #906376
24.10.2006 16:56
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 24.10.2006 17:34
Сообщ.: 4, Visits: 8
WSADATA lpWSAData;
   SOCKET s;
   AnsiString query;


   query += "GET http://bnm.md/apps/ofexch_xml.jsp?lang=2 HTTP/1.0\r";
   query += "Accept: */*\r";
   query += "Accept-Language: ru \r";
   query += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r";
   query += "Host: bnm.md\r";
   query += "Proxy-Connection: Keep-Alive\r\r";
   // Инициализация библиотеки 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;
    }
    // Получаем ответ с сервера ---------------------------------
WSADATA lpWSAData;
   SOCKET s;
   AnsiString query;


   query += "GET http://bnm.md/apps/ofexch_xml.jsp?lang=2 HTTP/1.0\r";
   query += "Accept: */*\r";
   query += "Accept-Language: ru \r";
   query += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r";
   query += "Host: bnm.md\r";
   query += "Proxy-Connection: Keep-Alive\r\r";
   / Инициализация библиотеки 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);    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);

В ответе пишет мол хост неверный! У меня уже голова кругом идет от этого сервака!

Сообщ. #906379
24.10.2006 16:58
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 24.10.2006 17:34
Сообщ.: 4, Visits: 8
Bazile, спасибо разобрался с твоей помощью!
Сообщ. #906380
24.10.2006 17:13
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
[тема перенесена в форум по C++]
Сообщ. #906382
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 3:57