satishsuman
2008-04-01 14:39:00 UTC
I am trying to make a HTTP connection with web server and trying to pass
authentication information.
I included INet.h.
My code for http request is..
***************************************************************************************
HINTERNET hSession = ::InternetOpen("SomeName",
PRE_CONFIG_INTERNET_ACCESS,
NULL,
INTERNET_INVALID_PORT_NUMBER,
0) ;
HINTERNET hConnect = ::InternetConnect(hSession,
"http://localhost/login",
INTERNET_DEFAULT_HTTP_PORT,
user_id,
password,
INTERNET_SERVICE_HTTP,
0,
0) ;
SetLastError(0);
HINTERNET hHttpFile = ::HttpOpenRequest(hConnect,
"POST",
"",
HTTP_VERSION,
NULL,
0,
INTERNET_FLAG_DONT_CACHE,
0);
if(hHttpFile)
{
DWORD dwErr = GetLastError();
char message[1000];
sprintf(message, "Ya! Success! - Error = %u", dwErr);
MessageBox(NULL, message, "HttpOpenRequest", MB_OK);
}
else
{
DWORD dwErr = GetLastError();
char message[1000];
sprintf(message, "No! Failure! - Error = %u", dwErr);
MessageBox(NULL, message, "HttpOpenRequest", MB_OK);
}
INTERNET_BUFFERS inBuf;
inBuf.dwStructSize = sizeof(INTERNET_BUFFERS);
inBuf.Next = NULL;
inBuf.lpcszHeader = NULL;
inBuf.dwHeadersLength = 0;
inBuf.dwHeadersTotal = 0;
char postData[1000];
sprintf(postData, "user_id=%s&password=%s", user_id, password);
inBuf.lpvBuffer = postData;
inBuf.dwBufferLength = strlen(postData);
inBuf.dwBufferTotal = strlen(postData);
inBuf.dwOffsetLow = 0;
inBuf.dwOffsetHigh = 0;
INTERNET_BUFFERS outBuf;
outBuf.dwStructSize = sizeof(INTERNET_BUFFERS);
outBuf.Next = NULL;
outBuf.lpcszHeader = NULL;
outBuf.dwHeadersLength = 0;
outBuf.dwHeadersTotal = 0;
outBuf.lpvBuffer = new char[1000];
outBuf.dwBufferLength = 1000;
outBuf.dwBufferTotal = 1000;
outBuf.dwOffsetLow = 0;
outBuf.dwOffsetHigh = 0;
SetLastError(0);
BOOL bSendRequest = ::HttpSendRequestEx(hHttpFile, &inBuf, &outBuf,
HSR_SYNC, NULL);
if(bSendRequest)
{
DWORD dwErr = GetLastError();
char message[1000];
sprintf(message, "Ya! Success! - Error = %u", dwErr);
MessageBox(NULL, message, "HttpSendRequest", MB_OK);
}
else
{
DWORD dwErr = GetLastError();
char message[1000];
sprintf(message, "No! Failure! - Error = %u", dwErr);
MessageBox(NULL, message, "HttpSendRequest", MB_OK);
}
*****************************************************************************************************************
HttpOpenRequest works an return message is Ya! Success! Error = 122
HttpSendRequestEx goes in else and gives message No! Failure! Error = 87.
What is wrong with my code?
authentication information.
I included INet.h.
My code for http request is..
***************************************************************************************
HINTERNET hSession = ::InternetOpen("SomeName",
PRE_CONFIG_INTERNET_ACCESS,
NULL,
INTERNET_INVALID_PORT_NUMBER,
0) ;
HINTERNET hConnect = ::InternetConnect(hSession,
"http://localhost/login",
INTERNET_DEFAULT_HTTP_PORT,
user_id,
password,
INTERNET_SERVICE_HTTP,
0,
0) ;
SetLastError(0);
HINTERNET hHttpFile = ::HttpOpenRequest(hConnect,
"POST",
"",
HTTP_VERSION,
NULL,
0,
INTERNET_FLAG_DONT_CACHE,
0);
if(hHttpFile)
{
DWORD dwErr = GetLastError();
char message[1000];
sprintf(message, "Ya! Success! - Error = %u", dwErr);
MessageBox(NULL, message, "HttpOpenRequest", MB_OK);
}
else
{
DWORD dwErr = GetLastError();
char message[1000];
sprintf(message, "No! Failure! - Error = %u", dwErr);
MessageBox(NULL, message, "HttpOpenRequest", MB_OK);
}
INTERNET_BUFFERS inBuf;
inBuf.dwStructSize = sizeof(INTERNET_BUFFERS);
inBuf.Next = NULL;
inBuf.lpcszHeader = NULL;
inBuf.dwHeadersLength = 0;
inBuf.dwHeadersTotal = 0;
char postData[1000];
sprintf(postData, "user_id=%s&password=%s", user_id, password);
inBuf.lpvBuffer = postData;
inBuf.dwBufferLength = strlen(postData);
inBuf.dwBufferTotal = strlen(postData);
inBuf.dwOffsetLow = 0;
inBuf.dwOffsetHigh = 0;
INTERNET_BUFFERS outBuf;
outBuf.dwStructSize = sizeof(INTERNET_BUFFERS);
outBuf.Next = NULL;
outBuf.lpcszHeader = NULL;
outBuf.dwHeadersLength = 0;
outBuf.dwHeadersTotal = 0;
outBuf.lpvBuffer = new char[1000];
outBuf.dwBufferLength = 1000;
outBuf.dwBufferTotal = 1000;
outBuf.dwOffsetLow = 0;
outBuf.dwOffsetHigh = 0;
SetLastError(0);
BOOL bSendRequest = ::HttpSendRequestEx(hHttpFile, &inBuf, &outBuf,
HSR_SYNC, NULL);
if(bSendRequest)
{
DWORD dwErr = GetLastError();
char message[1000];
sprintf(message, "Ya! Success! - Error = %u", dwErr);
MessageBox(NULL, message, "HttpSendRequest", MB_OK);
}
else
{
DWORD dwErr = GetLastError();
char message[1000];
sprintf(message, "No! Failure! - Error = %u", dwErr);
MessageBox(NULL, message, "HttpSendRequest", MB_OK);
}
*****************************************************************************************************************
HttpOpenRequest works an return message is Ya! Success! Error = 122
HttpSendRequestEx goes in else and gives message No! Failure! Error = 87.
What is wrong with my code?