Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.03.2018
Сообщений: 5
1

HTTP запрос

10.03.2018, 13:29. Показов 736. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал маленькую программку http запроса, но он не подключается. Плюс к этому мне нужно получать какие-либо данные, которые должны заноситься в вектор. Не знаю, как это сделать. Помогите, кто-нибудь, разобраться, пожалуйста.
Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#pragma comment(lib, "WS2_32.lib")
 
#include <iostream>
#include <sys/types.h>
#include <winsock2.h>
#include <memory.h>
#include <conio.h>
 
 
int main()
{
    WSADATA wData;
    struct sockaddr_in addr, serv_addr;
    SOCKET sock;
    if (WSAStartup(MAKEWORD(1, 1), &wData) != 0)
    {
        std::cout << "socket not initialized\n";
    }
    std::cout << "socket initialized\n";
 
    sock = socket(AF_INET, SOCK_STREAM, 0);
    if (sock == -1)
    {
        std::cout << "socket not created\n";
    }
 
    addr.sin_family = AF_INET;
    addr.sin_port = htons(80);
    addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
    bind(sock, (struct sockaddr *)&addr, sizeof(addr));
 
    char HostName[1024];
    DWORD HostIP = 0;
    LPHOSTENT lphost;
    gethostname(HostName, 1024);
    lphost = gethostbyname(HostName);
    serv_addr.sin_family = AF_INET;
    memcpy((char*)&serv_addr.sin_addr, lphost->h_addr, lphost->h_length);
    serv_addr.sin_port = htons(80);
 
    int error;
    if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr))<0)
    {
        std::cout << "connect error\n";
        error = WSAGetLastError();
        std::cout << error << "\n";
        _getch();
        return 1;
    }
    std::cout << "connect success\n";
 
 
    char message1[10];
    char message2[10];
    char message3[10];
 
    char buff[15];
 
    std::cout << "insert value\n";
    std::cin >> message1;
    std::cin >> message2;
    std::cin >> message3;
 
    send(sock, message1, sizeof(message1), 0);
    send(sock, message2, sizeof(message2), 0);
    send(sock, message3, sizeof(message3), 0);
 
    recv(sock, buff, sizeof(buff), 0);  //3 param -sizeof accepted data
    std::cout << "answer " << buff << "\n";
    recv(sock, buff, sizeof(buff), 0);
    std::cout << "answer " << buff << "\n";
    _getch();
 
    shutdown(sock, 2);
    closesocket(sock);
    WSACleanup();
 
    system("pause");
    return 0;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2018, 13:29
Ответы с готовыми решениями:

HTTP GET запрос
Здравствуйте. Уважаемые форумчане,помогите пожалуйста составить запрос серверу для получения...

Http запрос
Пожалуйста, помогите написать этот чертов запрос, молю не поскупитесь на коменты-пояснения. Мне...

HTTP запрос
Здравствуйте уважаемые программисты! Помогите новичку правильным кодом. Нужно отправить НТТР запрос...

HTTP GET-запрос и keep-alive
Есть HTTP keep-alive соединение. Через него надо сделать серию GET-запросов. Со стороны клиента это...

1
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,410
10.03.2018, 22:02 2
Qysr,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int get_addr(char *host_name)
{
    int res = -1;
 
    HOSTENT *phe = gethostbyname(host_name);
    if (phe)
        for (int i = 0; i < 4; i++)
            ((BYTE *)&res)[i] = phe->h_addr_list[0][i];
 
    return res;
}
...
        SOCKADDR_IN sa;
        sa.sin_family = AF_INET;
        sa.sin_port = htons(port);
        sa.sin_addr.S_un.S_addr = inet_addr(addr.c_str()); // если это IP
        sa.sin_addr.S_un.S_addr = get_addr((char *)addr.c_str()); // если это имя сайта
0
10.03.2018, 22:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2018, 22:02
Помогаю со студенческими работами здесь

HTTP-POST запрос.
Ниже приведенный код отправляет POST запрос. Проблема в том, что в ответ принимаются не все...

[MFC]HTTP POST запрос
Здравствуйте! Есть такой алгоритм пост запроса на сервер Код: CString strHeaders =...

HTTP запрос через сокеты
Делаю HTTP GET-запрос к google.com &quot;GET / HTTP/1.1\r\n&quot; &quot;Host: www.google.com\r\n&quot; ...

HTTP запрос - активировать аккаунт
Столкнулся с проблемой, что надо открыть сайт, но не в браузере, а просто чтобы выполнилось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru