Search code examples
apiurl-encodingapprequests

Stumbleupon API url encoding problem


I am trying to work with the stumbleupon API to get information about the items on my site.

Documentation: http://www.stumbleupon.com/help/badge-api-documentation/

Now it works perfectly except with some URL's...

But http://lolbin.net/i/fp16jU82/that's-what-beer-is-for.htm for example has a ' in the URL, which is a problem for the Stumbleupon API.

I have tried various things, but I keep getting error pages:

http://www.stumbleupon.com/services/1.01/badge.getinfo?url=http://lolbin.net/i/fp16jU82/that's-what-beer-is-for.html

http://www.stumbleupon.com/services/1.01/badge.getinfo?url=http://lolbin.net/i/fp16jU82/that\'s-what-beer-is-for.html

http://www.stumbleupon.com/services/1.01/badge.getinfo?url=http://lolbin.net/i/fp16jU82/that%27s-what-beer-is-for.html

http://www.stumbleupon.com/services/1.01/badge.getinfo?url=http://lolbin.net/i/fp16jU82/that%252527s-what-beer-is-for.html

The item is in the stumbleupon database already with many views: http://www.stumbleupon.com/url/lolbin.net/i/fp16jU82/that%252527s-what-beer-is-for.html

My question is, how can I query this particular item via the API so I get a valid return?


Solution

  • It works with %2527

    http://www.stumbleupon.com/services/1.01/badge.getinfo?url=http://lolbin.net/i/fp16jU82/that%2527s-what-beer-is-for.html
    

    Returns:

    {"result":{"url":"http:\/\/lolbin.net\/i\/fp16jU82\/that%27s-what-beer-is-for.html",
    "in_index":true,"publicid":"Aq9jhK","views":262882,
    "title":"Thats what beer is for - LOLBIN.net","thumbnail":"http:\/\/cdn.stumble-upon.com\/mthumb\/767\/82718767.jpg",
    "thumbnail_b":"http:\/\/cdn.stumble-upon.com\/altbthumb\/767\/82718767.jpg","submit_link":
    "http:\/\/www.stumbleupon.com\/submit?url=http:\/\/lolbin.net\/i\/fp16jU82\/that%27s-what-beer-is-for.html","badge_link":
    "http:\/\/www.stumbleupon.com\/badge?url=http:\/\/lolbin.net\/i\/fp16jU82\/that%27s-what-beer-is-for.html",
    "info_link":"http:\/\/www.stumbleupon.com\/url\/lolbin.net\/i\/fp16jU82\/that%252527s-what-beer-is-for.html"},
    "timestamp":1317025970,"success":true}
    

    It is, as Godius pointed out, a double urlencoding. ' => %27 => %2527