API 网关的path参数如何编码?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
当API的path中有参数,而且参数含特殊字符。需要先将参数urlencode后加入path中。不然签名会有问题。此时后端收到的也是urlEncode后的值,如果要获取原值,需要自己在后端进行urlDecode.
@Test
public void testPath() throws Exception{
//请求path
String host="你的域名";
//请求path,先将参数处理后再放入path中。
String type="中文 123";
String pathParam= URLEncoder.encode(type,"UTF-8");
String path = "/"+pathParam;
Map<String, String> headers = new HashMap<String, String>();
//(必填)根据期望的Response内容类型设置
headers.put(HttpHeader.HTTP_HEADER_ACCEPT, "application/json");
CUSTOM_HEADERS_TO_SIGN_PREFIX.clear();
Request request = new Request(Method.GET, host, path, AppKey, AppSecret, Constants.DEFAULT_TIMEOUT);
request.setHeaders(headers);
request.setSignHeaderPrefixList(CUSTOM_HEADERS_TO_SIGN_PREFIX);
//调用服务端
Response response = Client.execute(request);
System.out.println(JSON.toJSONString(response));
}