HTTP Post / CHttpFile returning non recognizable characters
Hello all,
I am desparete and need help! I have been trying to figure this out
for over a week now and cannot spend anymore time on this. Basically I
am doing something that I have done a million times, but for sone
reason it is not working in this instance. But even more bizarre, its
not just working from one location...
Basically I am trying to do a HTTP_VERB_POST to log in to a popular
web site. I have done this type of code over and over and its very
straight forward. I wrote code to perform this task on my laptop while
at work. After a while, I finally got it to work perfectly. It seems
goes to the web site to the login page, extracts the values needed for
the post and then I do an OpenRequest and then a SendRequest. Next, I
read in the data from the CHttpFile. This completely worked. It
downloaded the page saying that I have logged in. All was well, until
I got home. Running the same program from teh same computer, but now
on a different network (my home network, different IP address), it
fails. But it fails in a way I have never seen before. The page
returned from the HttpFile is complete garbage - unrecognizable
characters (nothing I could display on here). I have never seen
anything like this. And to add to my confusion, if I open up Internet
Explorer and manually go to the website and log in, it works just
fine. So this is not a case of the IP got banned or something like
that. But computers use a router and both are behind a firewall. But I
tested it with the firewall disabled, and no changes. But like I said,
if I do it manually using IE, it works just fine. One other thing, in
this SAME program, I log into a different web site (using the same
code) and it works just fine...
Below is basically the code I used. The original code had the
following in different functions, but I merged it together to make it
an easier read. But I believe i got it all... Anyone have any clue at
all on what could be going on. I'm deparate!!!!
Thanks,
Chris
Code:
---------
CInternetSession *session;
CHttpConnection* pConnection;
session = new CInternetSession(NULL,
1,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,INTERNET_FLAG_DONT_CACHE);
strFormData = "SESSIONID=24325235&......";
CString strHeaders = CString("Accept: image/gif, image/x-xbitmap, .....
\r\n");
DWORD dwServiceType;
USHORT nPort;
CString currentURL = CString(http:www.???); // the site is NOT am
https / secure site
AfxParseURL( currentURL, dwServiceType, sServerName, sObjectName,
nPort );
CString fileText;
CHttpFile* pFile = NULL;
try {
pConnection = session-
GetHttpConnection(_T(sServerName),nPort,"","");
pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,
_T(sObjectName), NULL,1,NULL,NULL, INTERNET_FLAG_EXISTING_CONNECT|
INTERNET_FLAG_DONT_CACHE );
BOOL result = pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)
strFormData, strFormData.GetLength());
if (pFile) {
int len = pFile->GetLength();
char buf[2000];
int numread =0;
CString cc;
while ((numread = pFile->Read(buf,sizeof(buf)-1)) > 0) {
buf[numread] = '\0';
fileText += CString(buf);
}
}
}
catch (CInternetException* m_pException)
{
pFile = NULL;
char test[1024];
m_pException->GetErrorMessage(test,1024);
m_pException->Delete();
}
CString webPage = fileText; // This is what is coming back as garbage
- non recognizable characters