CODE:
string T;
if (sendgetweb(#T, "", "GET", "http:/"+"/localhost:8000", "api/events/?format=json", 3000)>0) messagebox (T);
string T;
if (sendgetweb(#T, "", "GET", "http:/"+"/localhost:8000", "api/events/?format=json", 3000)>0) messagebox (T);
ответа не получаю.
так же пробовал через WinInet:
CODE:
#define NULL 0
#define FALSE 0
#define INTERNET_OPEN_TYPE_PRECONFIG 0
#define INTERNET_DEFAULT_HTTPS_PORT 8000
#define INTERNET_SERVICE_HTTP 3
#define INTERNET_FLAG_SECURE 8388608
#define INTERNET_FLAG_NO_CACHE_WRITE 67108864
external(INT, "InternetOpen", "InternetOpenA", "Wininet.dll");
external(INT, "InternetConnect", "InternetConnectA", "Wininet.dll");
external(INT, "HttpOpenRequest", "HttpOpenRequestA", "Wininet.dll");
external(INT, "HttpSendRequest", "HttpSendRequestA", "Wininet.dll");
external(INT, "InternetReadFile", "InternetReadFile", "Wininet.dll");
external(INT, "InternetCloseHandle", "InternetCloseHandle", "Wininet.dll");
int hInternet = InternetOpen(
"My bot",
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,NULL,
0);
if (hInternet != NULL)
{
int hConnect = InternetConnect(
hInternet,
"127.0.0.1",
INTERNET_DEFAULT_HTTPS_PORT,
NULL,NULL,
INTERNET_SERVICE_HTTP,
0,
1);
if (hConnect != NULL)
{
int hRequest = HttpOpenRequest(
hConnect,
"GET",
"api/events/?format=json",
NULL,
NULL,
0,
INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_CACHE_WRITE,
1);
if (hRequest != NULL)
{
int bSend = HttpSendRequest(hRequest,
NULL,
0,
NULL,
0);
string fr="";
char szData[1024];
int dwBytesRead;
loop()
{
int bRead = InternetReadFile(
hRequest,
address(#szData[0]),
sizearray(szData)-1,
address(#dwBytesRead));
fr=fr+format(#szData[0]);
if (bRead == FALSE || dwBytesRead == 0) break;
}
messagebox (fr);
InternetCloseHandle(hRequest);
}
InternetCloseHandle(hConnect);
}
InternetCloseHandle(hInternet);
}
#define NULL 0
#define FALSE 0
#define INTERNET_OPEN_TYPE_PRECONFIG 0
#define INTERNET_DEFAULT_HTTPS_PORT 8000
#define INTERNET_SERVICE_HTTP 3
#define INTERNET_FLAG_SECURE 8388608
#define INTERNET_FLAG_NO_CACHE_WRITE 67108864
external(INT, "InternetOpen", "InternetOpenA", "Wininet.dll");
external(INT, "InternetConnect", "InternetConnectA", "Wininet.dll");
external(INT, "HttpOpenRequest", "HttpOpenRequestA", "Wininet.dll");
external(INT, "HttpSendRequest", "HttpSendRequestA", "Wininet.dll");
external(INT, "InternetReadFile", "InternetReadFile", "Wininet.dll");
external(INT, "InternetCloseHandle", "InternetCloseHandle", "Wininet.dll");
int hInternet = InternetOpen(
"My bot",
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,NULL,
0);
if (hInternet != NULL)
{
int hConnect = InternetConnect(
hInternet,
"127.0.0.1",
INTERNET_DEFAULT_HTTPS_PORT,
NULL,NULL,
INTERNET_SERVICE_HTTP,
0,
1);
if (hConnect != NULL)
{
int hRequest = HttpOpenRequest(
hConnect,
"GET",
"api/events/?format=json",
NULL,
NULL,
0,
INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_CACHE_WRITE,
1);
if (hRequest != NULL)
{
int bSend = HttpSendRequest(hRequest,
NULL,
0,
NULL,
0);
string fr="";
char szData[1024];
int dwBytesRead;
loop()
{
int bRead = InternetReadFile(
hRequest,
address(#szData[0]),
sizearray(szData)-1,
address(#dwBytesRead));
fr=fr+format(#szData[0]);
if (bRead == FALSE || dwBytesRead == 0) break;
}
messagebox (fr);
InternetCloseHandle(hRequest);
}
InternetCloseHandle(hConnect);
}
InternetCloseHandle(hInternet);
}
В результате получаю много букв Н.
При дебаге выяснил - bSend возвращает 0.
В чем ошибка?
(Добавление)
Проблема решена следующим образом:
Во втором варианте значение флага INTERNET_FLAG_SECURE установлено 0
Если оставить флаг 8388608, то будет открыто HTTPS соединение, сервер настроен на HTTP
А вот что делать с sendgetweb, я так и не понял, сервер вообще не видит запроса...