我正在尝试创建一个简单的休息服务,该服务读取URL中的查询参数。
public Response getBalanceSnapshot(
@DefaultValue("abc") @QueryParam("typeofid") String t,
@DefaultValue("def") @QueryParam("id") String i) {
// public Response getBalanceSnapshot(@Context UriInfo uriInfo) {
// String t = uriInfo.getQueryParameters().getFirst("parameter1");
// String i = uriInfo.getQueryParameters().getFirst("parameter1");
if (i == null) {
throw new WebApplicationException(
Response.status(HttpURLConnection.HTTP_BAD_REQUEST)
.entity("name parameter is mandatory")
.build());
}
if (t.length() == 0) {
return Response.status(200).entity("empty string").build();
}
return Response.status(200)
.entity("query params are " + t + " and " + i)
.build();
}
如果要求是 - http://localhost:8080/sampleresource/firstendpoint?typeofid=acc_id&id=1234
然后预期的回复是query params are acc_id and 1234
。
实际的回应是。 query params are
字符串不为空。但两个长度都是0
。
我也尝试使用URI信息来获取参数。但这会产生不同的错误。
答案 0 :(得分:0)
让我们测试一下Java的其他一些功能。
public class Test {
public static void main(final String... args) {
final String s = null;
System.out.println("aaa" + s + "bbb");
}
}
程序打印
aaanullbbb
不
aaabbb
当你看到
query params are and
不
query params are acc_id and 1234
这意味着t
蚂蚁i
实际上是""
,而不是null
。
您确定要求采用正确的方法吗?