CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 15 of 17

Hybrid View

  1. #1
    Join Date
    May 2010
    Posts
    38

    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.

  2. #2
    VictorN's Avatar
    VictorN is offline Super Moderator Power Poster
    Join Date
    Jan 2003
    Location
    Hanover Germany
    Posts
    20,398

    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

  3. #3
    Join Date
    May 2010
    Posts
    38

    Re: Problem With Internet WriteFile

    Quote Originally Posted by VictorN View Post
    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,

  4. #4
    VictorN's Avatar
    VictorN is offline Super Moderator Power Poster
    Join Date
    Jan 2003
    Location
    Hanover Germany
    Posts
    20,398

    Re: Problem With Internet WriteFile

    Quote Originally Posted by rezame View Post
    Hi,
    You mean I repost my code include tags?
    No, you have to edit your OP adding Code tags.
    Victor Nijegorodov

  5. #5
    Join Date
    May 2010
    Posts
    38

    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 (&#37;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.

  6. #6
    VictorN's Avatar
    VictorN is offline Super Moderator Power Poster
    Join Date
    Jan 2003
    Location
    Hanover Germany
    Posts
    20,398

    Re: Problem With Internet WriteFile

    Did you ever read the Announcement: Before you post....
    Don't you know what Code tag is?
    Victor Nijegorodov

  7. #7
    Join Date
    May 2010
    Posts
    38

    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
  •  





Click Here to Expand Forum to Full Width

Featured