Newsgroups : Microsoft : microsoft.public.inetsdk.programming.wininet : 2008 Apr : HttpOpenRequest and HttpSendRequest

www.cryer.info
Managed Newsgroup Archive

HttpOpenRequest and HttpSendRequest

Subject:HttpOpenRequest and HttpSendRequest
Posted by:"satishsuman" (satishsum..@discussions.microsoft.com)
Date:Tue, 1 Apr 2008 07:39:00

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?

Replies:

www.cryer.info
Managed Newsgroup Archive