REST:包含 url 的查询参数
REST: query param containing an url
如何处理包含 url 值的查询参数?
例如,如果我的端点是 /endpoint/urls/{urls}
并且查询参数值 urls 将包含 url。我应该如何告诉服务器必须转义 {urls}
的值并将其视为字符串而不是真正的 url ?
举个例子:
/endpoint/urls/http://www.google.com
首先,您问题中提供的示例不是查询参数。
这是一个路径参数。
要发送 URL 作为查询参数,您必须使用 key/value 对 (key=value
) 并且值必须 URL 编码:
/endpoint?url=http%3A%2F%2Fwww.google.com
要URL在Java中编码一个值(路径或查询参数),你可以使用:
String valueUrlEncoded = URLEncoder.encode(value, "UTF-8")
如何处理包含 url 值的查询参数?
例如,如果我的端点是 /endpoint/urls/{urls}
并且查询参数值 urls 将包含 url。我应该如何告诉服务器必须转义 {urls}
的值并将其视为字符串而不是真正的 url ?
举个例子:
/endpoint/urls/http://www.google.com
首先,您问题中提供的示例不是查询参数。 这是一个路径参数。
要发送 URL 作为查询参数,您必须使用 key/value 对 (key=value
) 并且值必须 URL 编码:
/endpoint?url=http%3A%2F%2Fwww.google.com
要URL在Java中编码一个值(路径或查询参数),你可以使用:
String valueUrlEncoded = URLEncoder.encode(value, "UTF-8")