我通过接口请求数据时,用到了oauth1.0的认证。 ( 把所有的请求参数包括POST方法体中的参数,经过排序(按参数名进行文本排序,如果参数名有重复则再按参数值进行排序),使用%3D替代=号,并且使用%26作为每个参数之间的分隔符,每个参数的参数值通过RFC3986定义的url编码方式进行编码(其与PHP中的urlencode所实现的url编码方式的区别在于,RFC3986要求将空格编码为%20,而不是+,同时不会将~编码为%7E),拼接成一个字符串。)
我再网上看到这句话,但是当我现在的接口参数是json字符串, 如果我的json带空格,认证就不通过;如果去掉空格,就没这问题。 这是咋回事啊。 参数已经被编码了,按道理应该没问题啊。
URLEncoder.encode(string, "UTF-8"); 编码后,空格会编码成+号,这个和后台是不一致的, 所以只需要把+替换成%20 就可以了