Using OAuth 1.0 encoded requests for external webservice calls

It looks like you're using an old version of Jesper Joergensen's OAuth Playground. I worked on this a couple of years ago to get it working with a variety of providers, and needed to fix parameter encoding.

The relevant section is:

private Map<String,String> getUrlParams(String value) {
    Map<String,String> res = new Map<String,String>();
    if(value==null || value=='') {
        return res;
    for(String s : value.split('&')) {
        System.debug('getUrlParams: '+s);
        List<String> kv = s.split('=');
        if(kv.size()>1) {
            // RFC 5849 section and specify that parameter names 
            // and values are decoded then encoded before being sorted and concatenated
            // Section 3.6 specifies that space must be encoded as %20 and not +
            String encName = EncodingUtil.urlEncode(EncodingUtil.urlDecode(kv[0], 'UTF-8'), 'UTF-8').replace('+','%20');
            String encValue = EncodingUtil.urlEncode(EncodingUtil.urlDecode(kv[1], 'UTF-8'), 'UTF-8').replace('+','%20');
            System.debug('getUrlParams:  -> '+encName+','+encValue);
    return res;

My fork is at