|
3驿站币
#include <stdio.h>
#include <memory.h>
#include <windows.h>
#include <winhttp.h>
#pragma comment (lib, "winhttp")
#define URL L"/do.php?ac=looogoion&&ref"
char DATA[256] = "username=XXXXXX&password=XXXXXX&refer=space.php%3Fdo%3Dhome&loginsubmit=%B5%C7%C2%BC&formhash=fd7733d3";
char Cookies[256] = { 0 };
int main()
{
HINTERNET hSession = NULL, hConnect = NULL, hRequest;
char *RECVBUF = NULL;
DWORD WORDRECV, Number = 0, dwSize = 0, dwIndex = 0;
hSession = WinHttpOpen(L"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko", WINHTTP_ACCESS_TYPE_NO_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
if (hSession)
{
// printf("hSession\n");
hConnect = WinHttpConnect(hSession, L"www.youxiren.cn", INTERNET_DEFAULT_HTTP_PORT, 0);
}
if (hConnect)
{
// printf("WinHttpConnect\n");
hRequest = WinHttpOpenRequest(hConnect, L"POST", URL, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0);
}
if (hRequest)
{
WinHttpAddRequestHeaders(hRequest, L"Content-Type: application/x-www-form-urlencoded", strlen("Content-Type: application/x-www-form-urlencoded"), WINHTTP_ADDREQ_FLAG_ADD);
// printf("WinHttpOpenRequest\n");
// WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_COOKIE, WINHTTP_HEADER_NAME_BY_INDEX, NULL, &dwSize, &dwIndex);
if (WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, DATA, strlen(DATA), strlen(DATA), 0))
{
// printf("WinHttpSendRequest\n");
if (WinHttpReceiveResponse(hRequest, NULL))
{
// WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_COOKIE, WINHTTP_HEADER_NAME_BY_INDEX, Cookies, &dwSize, &dwIndex);
// printf("WinHttpReceiveResponse\n");
do
{
WORDRECV = 0;
if (WinHttpQueryDataAvailable(hRequest, &WORDRECV))
{
// printf("WinHttpQueryDataAvailable\n");
// printf("%d\n", WORDRECV);
RECVBUF = (char *)malloc(WORDRECV + 1);
memset(RECVBUF, 0, WORDRECV + 1);
WinHttpReadData(hRequest, RECVBUF, WORDRECV, &Number);
printf("%s", RECVBUF);
free(RECVBUF);
}
} while (WORDRECV > 0);
}
}
}
// printf("%s\n", Cookies);
WinHttpCloseHandle(hRequest);
WinHttpCloseHandle(hConnect);
WinHttpCloseHandle(hSession);
return 0;
}
以上是网站POST,已经可以正常POST数据并成功返回,但是怎么控制COOKIE呢?怎么接收并保存服务器给传来的COOKIE方便下次使用呢? |
上一篇: 在工作线程创建的Socket收到数据后,如何在View视图里划出曲线轨迹?下一篇: 关于视图类指针的获取问题
|