Forum Discussion

Jainsoumya's avatar
Jainsoumya
Contributor
3 years ago

Not reading the data in correct format

Hi richie 

When I am passing the value for ex "Invite_User_10@yahoo.com"in my request as template it is reading value as mentioned below 

"Invite_User_10%2540yahoo.com "

I have also attached the screenshot for the same 

  • Hey Jainsoumya,

    Think youve stumbled on the percent encoding issue that was introduced on i think v3.20 or v3.20.1.

    Percent encoding occurs on the URI of any http request as standard, but also percent encoding occurs on the payload in an http request if the datatype of the request is 'application/x-www-form-urlencoded'.

    Ive just had a look at v3.20.1 release notes and It had a bug fix cos there was an issue encoding special chars....looks like this was the fix that broke it.

    Essentially the bug is that special chars are being encoded twice, so an @ symbol instead of being replaced by a %40, is being replaced by %2540.

    What im not understanding is that i can see the @ has been double encoded in the URI in your screenahot, however the RAW response appears to indicate that the @ hasnt been double encoded as the response says the 'Invite_User_10%40yahoo.com' hasnt been found...??? Id expect the double encode to be displayed in your RAW as well.

    Anyway, try this workaround - in the 'Advanced Options' form in your Request properties, at the bottom is a checkbox named something like 'Disable automatic percent/url encoding'.

    If you tick this box, this should turn off the default/automatic encoding.

    Then i suggest you try manually altering the email address in your URI yourself.

    So instead of adding 'Invite_User_10@yahoo.com' into your uri, use the value 'Invite_User_10%40yahoo.com' instead.

    Cheers,

    Rich
  • richie's avatar
    richie
    Community Hero
    Hey Jainsoumya,

    Think youve stumbled on the percent encoding issue that was introduced on i think v3.20 or v3.20.1.

    Percent encoding occurs on the URI of any http request as standard, but also percent encoding occurs on the payload in an http request if the datatype of the request is 'application/x-www-form-urlencoded'.

    Ive just had a look at v3.20.1 release notes and It had a bug fix cos there was an issue encoding special chars....looks like this was the fix that broke it.

    Essentially the bug is that special chars are being encoded twice, so an @ symbol instead of being replaced by a %40, is being replaced by %2540.

    What im not understanding is that i can see the @ has been double encoded in the URI in your screenahot, however the RAW response appears to indicate that the @ hasnt been double encoded as the response says the 'Invite_User_10%40yahoo.com' hasnt been found...??? Id expect the double encode to be displayed in your RAW as well.

    Anyway, try this workaround - in the 'Advanced Options' form in your Request properties, at the bottom is a checkbox named something like 'Disable automatic percent/url encoding'.

    If you tick this box, this should turn off the default/automatic encoding.

    Then i suggest you try manually altering the email address in your URI yourself.

    So instead of adding 'Invite_User_10@yahoo.com' into your uri, use the value 'Invite_User_10%40yahoo.com' instead.

    Cheers,

    Rich
    • Jainsoumya's avatar
      Jainsoumya
      Contributor

      richie  

      Thank you for your reply 

      So is this a bug of readyapi due to which special character is not getting read correctly?

       

      And regarding the solution you provided "try this workaround - in the 'Advanced Options' form in your Request properties, at the bottom is a checkbox named something like 'Disable automatic percent/url encoding'.

      If you tick this box, this should turn off the default/automatic encoding."

       

      This is enough , no need to altering the email address in your URI .