HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 09.09.2018, 11:53
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

Репутация: 213
По умолчанию

Класс для отправки get запроса и получения ответа.

CleanLegend/SendGet(https://github.com/CleanLegend/SendGet)

Пример использования:

C++:





Код:
MyGet MyGetGet
;
std
::
string myotvet
;
MyGetGet
.
Init
(
"mysite.com"
)
;
MyGetGet
.
SendGet
(
"test.php?user=test"
,
myotvet
)
;
MyGetGet
.
DeInit
(
)
;
 
Ответить с цитированием

  #2  
Старый 09.09.2018, 13:17
УченикДимаса
Познающий
Регистрация: 02.07.2013
Сообщений: 37
С нами: 6769716

Репутация: 58
По умолчанию

давайте кто-то еще сделает класс на класс для гет запроса
 
Ответить с цитированием

  #3  
Старый 09.09.2018, 13:21
#Rin
Познавший АНТИЧАТ
Регистрация: 09.08.2015
Сообщений: 1,213
С нами: 5663255

Репутация: 183


По умолчанию

Целый класс для одного GET запроса.

Не проще так:

C++:





Код:
#include 
#pragma comment (lib, "WinInet.lib")
enum
RequestType
{
GET
,
POST
}
;
char
*
SendRequest
(
int
type
,
char
*
site
,
char
*
file
,
char
*
message
)
{
char
*
fileAndMessage
;
DWORD size
;
char
szBuffer
[
1024
]
;
memset
(
&
szBuffer
,
NULL
,
sizeof
(
szBuffer
)
)
;
HINTERNET hSession
=
InternetOpen
(
"App"
,
INTERNET_OPEN_TYPE_PRECONFIG
,
NULL
,
NULL
,
0
)
;
if
(
hSession
!=
NULL
)
{
HINTERNET hConnect
=
InternetConnect
(
hSession
,
site
,
INTERNET_DEFAULT_HTTP_PORT
,
NULL
,
NULL
,
INTERNET_SERVICE_HTTP
,
0
,
1
)
;
if
(
hConnect
!=
NULL
)
{
if
(
type
==
RequestType
::
GET
)
sprintf
(
fileAndMessage
,
"%s?%s"
,
file
,
message
)
;
HINTERNET hRequest
=
HttpOpenRequest
(
hConnect
,
(
type
==
RequestType
::
POST
?
"POST"
:
"GET"
)
,
(
type
==
RequestType
::
POST
?
file
:
fileAndMessage
)
,
NULL
,
NULL
,
0
,
0
,
1
)
;
if
(
hRequest
!=
NULL
)
{
LPCSTR header
;
header
=
"Accept: */*"
;
HttpAddRequestHeaders
(
hRequest
,
header
,
strlen
(
header
)
,
HTTP_ADDREQ_FLAG_ADD
)
;
header
=
"Content-Type: application/x-www-form-urlencoded"
;
HttpAddRequestHeaders
(
hRequest
,
header
,
strlen
(
header
)
,
HTTP_ADDREQ_FLAG_ADD
)
;
if
(
HttpSendRequest
(
hRequest
,
NULL
,
0
,
(
type
==
RequestType
::
POST
?
message
:
NULL
)
,
(
type
==
RequestType
::
POST
?
strlen
(
message
)
:
NULL
)
)
)
{
if
(
InternetReadFile
(
hRequest
,
szBuffer
,
sizeof
(
szBuffer
)
,
&
size
)
)
return
szBuffer
;
}
}
InternetCloseHandle
(
hRequest
)
;
}
InternetCloseHandle
(
hConnect
)
;
}
InternetCloseHandle
(
hSession
)
;
return
FALSE
;
}


UPD: С текущими моими знаниями, этот код выглядит не очень.
 
Ответить с цитированием

  #4  
Старый 09.09.2018, 13:55
Лисёнок
Новичок
Регистрация: 08.09.2018
Сообщений: 6
С нами: 4042407

Репутация: 3
По умолчанию

Цитата:
Сообщение от Rinat_Namazov  

Целый класс для одного GET запроса.
ООП головного мозга
 
Ответить с цитированием

  #5  
Старый 21.01.2019, 21:36
AnWu
Флудер
Регистрация: 08.11.2017
Сообщений: 4,787
С нами: 4480376

Репутация: 183


По умолчанию

@CleanLegend буфер для ответа всего 1024 байт. Можешь сделать динамическую строку под ответ? У меня не получается.
 
Ответить с цитированием

  #6  
Старый 24.01.2019, 21:21
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

Цитата:
Сообщение от DonHomka  

@CleanLegend буфер для ответа всего 1024 байт. Можешь сделать динамическую строку под ответ? У меня не получается.
Ты не понимаешь что ты хочешь сам ,по этому и не получается.
 
Ответить с цитированием

  #7  
Старый 24.01.2019, 21:27
AnWu
Флудер
Регистрация: 08.11.2017
Сообщений: 4,787
С нами: 4480376

Репутация: 183


По умолчанию

Цитата:
Сообщение от iAmerican  

Ты не понимаешь что ты хочешь сам ,по этому и не получается.
Я понимаю что хочу. И с этим мне фип помог. Не умничай не по делу.
 
Ответить с цитированием

  #8  
Старый 27.01.2019, 01:06
sqlaer.
Новичок
Регистрация: 26.01.2019
Сообщений: 2
С нами: 3840167

Репутация: 51
По умолчанию

Цитата:
Сообщение от Rinat_Namazov  

Целый класс для одного GET запроса.
Не проще так:

C++:





Код:
#include 
#pragma comment (lib, "WinInet.lib")
enum
RequestType
{
GET
,
POST
}
;
char
*
SendRequest
(
int
type
,
char
*
site
,
char
*
file
,
char
*
message
)
{
char
*
fileAndMessage
;
DWORD size
;
char
szBuffer
[
1024
]
;
memset
(
&
szBuffer
,
NULL
,
sizeof
(
szBuffer
)
)
;
HINTERNET hSession
=
InternetOpen
(
"App"
,
INTERNET_OPEN_TYPE_PRECONFIG
,
NULL
,
NULL
,
0
)
;
if
(
hSession
!=
NULL
)
{
HINTERNET hConnect
=
InternetConnect
(
hSession
,
site
,
INTERNET_DEFAULT_HTTP_PORT
,
NULL
,
NULL
,
INTERNET_SERVICE_HTTP
,
0
,
1
)
;
if
(
hConnect
!=
NULL
)
{
if
(
type
==
RequestType
::
GET
)
sprintf
(
fileAndMessage
,
"%s?%s"
,
file
,
message
)
;
HINTERNET hRequest
=
HttpOpenRequest
(
hConnect
,
(
type
==
RequestType
::
POST
?
"POST"
:
"GET"
)
,
(
type
==
RequestType
::
POST
?
file
:
fileAndMessage
)
,
NULL
,
NULL
,
0
,
0
,
1
)
;
if
(
hRequest
!=
NULL
)
{
LPCSTR header
;
header
=
"Accept: */*"
;
HttpAddRequestHeaders
(
hRequest
,
header
,
strlen
(
header
)
,
HTTP_ADDREQ_FLAG_ADD
)
;
header
=
"Content-Type: application/x-www-form-urlencoded"
;
HttpAddRequestHeaders
(
hRequest
,
header
,
strlen
(
header
)
,
HTTP_ADDREQ_FLAG_ADD
)
;
if
(
HttpSendRequest
(
hRequest
,
NULL
,
0
,
(
type
==
RequestType
::
POST
?
message
:
NULL
)
,
(
type
==
RequestType
::
POST
?
strlen
(
message
)
:
NULL
)
)
)
{
if
(
InternetReadFile
(
hRequest
,
szBuffer
,
sizeof
(
szBuffer
)
,
&
size
)
)
return
szBuffer
;
}
}
InternetCloseHandle
(
hRequest
)
;
}
InternetCloseHandle
(
hConnect
)
;
}
InternetCloseHandle
(
hSession
)
;
return
FALSE
;
}

Точно, в класс. А проще всего?
 
Ответить с цитированием

  #9  
Старый 27.01.2019, 01:51
AnWu
Флудер
Регистрация: 08.11.2017
Сообщений: 4,787
С нами: 4480376

Репутация: 183


По умолчанию

Цитата:
Сообщение от sqlaer.  

Точно, в класс. А проще всего?
а проще юзать функи фипа, она читают весь док
 
Ответить с цитированием

  #10  
Старый 27.01.2019, 01:52
sqlaer.
Новичок
Регистрация: 26.01.2019
Сообщений: 2
С нами: 3840167

Репутация: 51
По умолчанию

Цитата:
Сообщение от DonHomka  

а проще юзать функи фипа, она читают весь док
Я не занимаюсь сайтами, а особенно запросами. Не для меня.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.