Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: Сети
Войти
Регистрация
Восстановить пароль
 
Qysr
0 / 0 / 0
Регистрация: 08.03.2018
Сообщений: 4
1

HTTP запрос

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

Написал маленькую программку 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2018, 13:29
Ответы с готовыми решениями:

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

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

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

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

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

1
vxg
Модератор
3252 / 2052 / 323
Регистрация: 13.01.2012
Сообщений: 7,949
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2018, 22:02

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru