I need to URL encode a string in a LoadRunner script, does anyone have a C function to do that?

  • Questions
  • I need to URL encode a string in a LoadRunner script, does anyone have a C function to do that?
Question ID: 104122
1
0

I need to URL encode a string in a LoadRunner script, I need a C function to do that, but i am not sure where to start. Has anyone written such a function before?

Marked as spam
Posted by (Questions: 36, Answers: 3)
Asked on May 20, 2010 6:04 pm
357 views
Answers (1)
2
Private answer

Use this function to URL encode a string for use in LoadRunner scripts. The function takes in the original string and the parameter name you wish to save the encoded string out to.

//-----------------------------------------------------------------------
// Function:    encodeString
// Inputs:  original = The original un-encoded string
//      output_param_name = Parameter name the encoded string will be saved to.
// Outputs:     <none>
// Description: URL Encodes a string.
//-----------------------------------------------------------------------
void encodeString(const char * original,char * output_param_name)
{
    int counter, out_counter;
    char * encodedStr = (char *)malloc((strlen(original)*2)+1); // will make sure there is enough room for new string
    char buffer[4]; // buffer to hold hexidecimal version of the character
    for(counter=0,out_counter=0;counter<(int)strlen(original);counter++,out_counter++)
    {
        if(isalnum(original[counter]))
            encodedStr[out_counter]=original[counter];
        else
        {
            sprintf(buffer, ''%%%X'', original[counter]); //prints %Hex_Value (%20) of the original character
            //grabs first three characters of the buffer which is the hex value we want
            encodedStr[out_counter++] = buffer[0];
            encodedStr[out_counter++] = buffer[1];
            encodedStr[out_counter] = buffer[2];
        }

    }
    encodedStr[out_counter]=''; //end the string
    lr_save_string(encodedStr,output_param_name); //save string into parameter
    free(encodedStr); //free memory
}
Marked as spam
Posted by (Questions: 6, Answers: 167)
Answered on May 20, 2010 6:07 pm