-
September 18th, 2011, 03:19 AM
#1
Problem With Internet WriteFile
Hi,
I have problems with below code:
Code:
HINTERNET Initialize = InternetOpen(0, //Name of Application Calling (Agent)
INTERNET_OPEN_TYPE_DIRECT, //Access Type
NULL, //Proxy Name
NULL, //Proxy Bypass
0); //Flags
HINTERNET hConnect = InternetConnect(Initialize, // InternetOpen handle
server, // Server name
80, // HTTPS port
user, // User name
pass, // User password
INTERNET_SERVICE_HTTP, // Service
0, // Flags
0); // Context
FtpSetCurrentDirectoryW(hConnect, path);
HINTERNET hReq = HttpOpenRequest(hConnect, //InternetConnect handle
L"POST", //Method
r1, //Object name
NULL, //Version
NULL, //Referrer
NULL, //Extra headers
INTERNET_FLAG_KEEP_CONNECTION &&
INTERNET_FLAG_NO_CACHE_WRITE, //Flags
0); //Context
HANDLE hFile = CreateFile(upFile, //File name
GENERIC_READ, //Desired Access
FILE_SHARE_READ, //Share Mode
NULL, //Security Attribute
OPEN_EXISTING, //Creation Disposition
FILE_ATTRIBUTE_NORMAL, //Flags and Attributes
NULL); //Template File
if(hFile == INVALID_HANDLE_VALUE)
{
printf("\nFailed to open local file %s.", upFile);
return FALSE;
}
//DWORD BufferIn.dwBufferTotal = GetFileSize(hFile, NULL);
//printf("File size is %d\n", BufferIn.dwBufferTotal);
BOOL bRead;
BOOL bRead1;
BYTE pBuffer[1024];
BYTE pBuffer1[1024];
DWORD dwBytesRead;
BOOL bRet;
bool result;
DWORD dwBytesWritten;
if(HttpSendRequestEx(hReq, NULL, 0, NULL,0))
{
DWORD sum = 0;
do
{
if(!(bRead = ReadFile(hFile, pBuffer, sizeof(pBuffer), &dwBytesRead, NULL)))
{
printf("\nReadFile failed on buffer %lu.", GetLastError());
result = FALSE;
break;
}
if(!(bRet=InternetWriteFile(hReq, pBuffer, dwBytesRead, &dwBytesWritten)))
{
printf("\nInternetWriteFile failed %lu", GetLastError());
if (GetLastError() == 12019)
{
cout << "\nERROR_INTERNET_INCORRECT_HANDLE_STATE\n" << endl;
}
result = FALSE;
break;
}
sum += dwBytesWritten;
}
while(dwBytesRead == sizeof(pBuffer));
CloseHandle(hFile);
printf("\nActual written bytes: %d\n", sum);
}
/*close file , terminate server connection and
deinitialize the wininet library*/
InternetCloseHandle(hReq);
InternetCloseHandle(hConnect);
InternetCloseHandle(Initialize);
It runs and not shows any errors.
But my problem is that not make any file and write on that in my server.
Other my problem is how define path in my code?
for example my file is in www.www.com/reza
how make that read my file in "reza" folder(path).
Regards,
Last edited by rezame; September 18th, 2011 at 01:14 PM.
-
September 18th, 2011, 10:51 AM
#2
Re: Problem With Internet WriteFile
Unfortunately it's very hard to read/understand the code snippet you have posted.
The reason is very simple: you got rid of using Code tags.
Last edited by VictorN; September 18th, 2011 at 11:39 AM.
Victor Nijegorodov
-
September 18th, 2011, 11:36 AM
#3
Re: Problem With Internet WriteFile
Originally Posted by VictorN
Unfortunately it very hard to read/understand the code snippet you have posted.
The reason is very simple: you got rid of using Code tags.
Hi,
You mean I repost my code include tags?
Regards,
-
September 18th, 2011, 11:40 AM
#4
Re: Problem With Internet WriteFile
Originally Posted by rezame
Hi,
You mean I repost my code include tags?
No, you have to edit your OP adding Code tags.
Victor Nijegorodov
-
September 18th, 2011, 11:49 AM
#5
Re: Problem With Internet WriteFile
Code:
INTERNET_BUFFERS BufferIn = {0};
BufferIn.dwStructSize = sizeof( INTERNET_BUFFERS );
HINTERNET hSession, hConnection, hRequest;
wchar_t hdr_buf[1024], error_buf[128];
wchar_t query_buf[1024] = {0,};
BOOL result;
DWORD dwBytesRead=0;
DWORD dwBytesWritten=0;
BYTE pBuffer[1024];
hSession = InternetOpen( 0, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );
if( hSession == NULL )
{
MessageBox( 0, L"HTTP Open failed!", L"HTTP", MB_OK );
return FALSE;
}
hConnection = InternetConnect( hSession, server,
INTERNET_DEFAULT_HTTP_PORT, user, pass,
INTERNET_SERVICE_HTTP, INTERNET_FLAG_PASSIVE, 0 );
if( hConnection == NULL )
{
wsprintf( error_buf, L"HTTP Connection failed (%d)", GetLastError() );
MessageBox( 0, error_buf, L"HTTP", MB_OK );
InternetCloseHandle( hSession );
return FALSE;
}
FtpSetCurrentDirectory(hConnection,path);
hRequest = HttpOpenRequest( hConnection, L"POST", r1,
HTTP_VERSION, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION &&
INTERNET_FLAG_NO_CACHE_WRITE, 0 );
if( hRequest == NULL )
{
wsprintf( error_buf, L"HTTP OpenRequest(POST) failed (%d)", GetLastError() );
MessageBox( 0, error_buf, L"HTTP", MB_OK );
InternetCloseHandle( hConnection );
InternetCloseHandle( hSession );
return FALSE;
}
HANDLE hFile = CreateFile(upFile, //File name
GENERIC_READ, //Desired Access
FILE_SHARE_READ, //Share Mode
NULL, //Security Attribute
OPEN_EXISTING, //Creation Disposition
FILE_ATTRIBUTE_NORMAL, //Flags and Attributes
NULL); //Template File
if(hFile == INVALID_HANDLE_VALUE)
{
wsprintf( error_buf, L"file open failed (%d)", GetLastError() );
MessageBox( 0, error_buf, L"HTTP", MB_OK );
InternetCloseHandle( hConnection );
InternetCloseHandle( hSession );
return FALSE;
}
BufferIn.dwBufferTotal = GetFileSize(hFile, NULL);
printf("File size is %d\n", BufferIn.dwBufferTotal);
if(HttpSendRequestEx(hRequest, NULL, 0, NULL,0))
{
DWORD sum = 0;
do
{
if(!(ReadFile(hFile, pBuffer, sizeof(pBuffer), &dwBytesRead, NULL)))
{
MessageBox( 0, L"Error Read File", L"HTTP", MB_OK );
break;
}
if(!(InternetWriteFile(hRequest, pBuffer, dwBytesRead, &dwBytesWritten)))
{
MessageBox( 0, L"Error Write File", L"HTTP", MB_OK );
break;
}
sum += dwBytesWritten;
cout<<pBuffer<<"\n";
cout<<sum;
} while(dwBytesRead == sizeof(pBuffer));
}
InternetCloseHandle( hRequest );
InternetCloseHandle( hConnection );
InternetCloseHandle( hSession );
cout<<"\n";
cout<<"Finished";
Last edited by rezame; September 18th, 2011 at 12:57 PM.
-
September 18th, 2011, 12:02 PM
#6
Re: Problem With Internet WriteFile
Did you ever read the Announcement: Before you post....
Don't you know what Code tag is?
Victor Nijegorodov
-
September 18th, 2011, 12:04 PM
#7
Re: Problem With Internet WriteFile
Sorry,
How add code Tag to my code?
Regards,
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|