【发布时间】:2017-01-04 02:57:08
【问题描述】:
我正在关注一个教程,并且还使用了 Stackoverflow 问题here。 这是我的 Java 类:
package com.crunchify.tutorial;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Consumes;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import org.json.simple.JSONObject;
@Path("api")
public class CrunchifyAPI {
@SuppressWarnings("unchecked")
@GET
@Path("/get")
@Consumes(MediaType.TEXT_PLAIN)
public String get(
@DefaultValue("111") @QueryParam("user") int user,
@Context UriInfo uriInfo
) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("user");
System.out.println("Data Received: " + uriInfo.getRequestUri().getQuery()
+ " | " + nameParam);
JSONObject obj = new JSONObject();
obj.put("auth", true);
String ret = JSONObject.toJSONString(obj);
return ret;
}
}
以下是我从邮递员那里得到的:
GET>> localhost/api/get?user=123
响应是:
{"auth":true}
服务器控制台:
Starting Crunchify's Embedded Jersey HTTPServer...
Started Crunchify's Embedded Jersey HTTPServer Successfully !!!
Data Received: ?user=123 | null
User Authenticated: true
我尝试过传递字符串、整数等,但没有任何效果。 uri Info 打印正确,响应也很好。问题是我没有得到要在 Java 代码中读取的参数。一旦我能够做到这一点,我将需要传递许多其他参数。请建议。谢谢!!
【问题讨论】:
-
我希望它会在服务器控制台中打印以下内容:
Data Received: ?user=123 | 123同样,稍后我想传递字符串和(如果可能,可能是 JSON)。