Я следую учебному пособию, а также использовал вопрос Stackoverflow here. Вот мой Java класс:Как использовать параметры запроса в приложении Java Jersey?
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'ing от почтальона:
GET>> localhost/api/get?user=123
Response является: консольный
{"auth":true}
Сервер:
Starting Crunchify's Embedded Jersey HTTPServer...
Started Crunchify's Embedded Jersey HTTPServer Successfully !!!
Data Received: ?user=123 | null
User Authenticated: true
Я пробовал с передачей String, Integer и т. Д., Но ничего не работает. Информация uri печатается правильно, и ответ обратно также прекрасен. Проблема в том, что я не получаю параметр для чтения в Java Code. Мне нужно будет передать многие другие параметры, как только я смогу это сделать. Пожалуйста, предложите. Благодаря!!
Я надеюсь, что он напечатает следующее на консоли сервера: 'Полученные данные:? User = 123 | 123' Аналогичным образом, позже я хотел бы передать String и (если возможно, может быть JSON). –