/ / Ako extrahovať parametre z požiadavky na zvlnenie v drese dresu? - java, zvyšok, kučeravý, dres, jax-rs

Ako extrahovať parametre z požiadavky na zakrivenie v servletu dresu? - java, odpočinok, zvlnenie, dres, jax-rs

Robím curl post pokojnú žiadosť na môj dres servlet vo forme

curl -i -X POST -d "debit_user_id=/custome/mobile_number:917827448775"http://localhost:8080/switch/apikongcall.do/transactions

Musím načítať debit_user_id v servlete, kód pre metódu Post je

@POST
//@Path("/transactions")
//@Consumes(MediaType.APPLICATION_JSON)
public Response createTrackInJSON(@QueryParam("debit_user_id") String debit_user_id) {

//Log logger = null;
this.logger = LogFactory.getLog(getClass());
this.logger.info("Inside post method"+debit_user_id);
String response = debit_user_id;

//String response = "testParam is: " + recipient_id + "n";
//String result = "Track saved : " + track;
return Response.status(200).entity(response).build();

Ale môj debit_user_id prichádza ako null. Je to správny spôsob, ako urobiť kľudnú požiadavku alebo spôsob, akým ju vyťahujem v servile, je nesprávny. Som nový v spoločnosti jax-rs. Vopred ďakujem za pomoc.

odpovede:

1 pre odpoveď č. 1

Voľba -d curl prechádza kódovaním URLparameter formulára. Ak chcete, aby daný príkaz Curl fungoval, musíte zmeniť @QueryParam na @FormParam. Stačí zadať názov parametra ako číslo mobilného_čísla bez cesty, ktorú ste použili v príkaze curl, napríklad:

curl -i -X POST -d "debit_user_id=mobile_number:917827448775" http://localhost:8080/switch/apikongcall.do/transactions

mapy na

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response createTrackInJSON(@FormParam("mobile_number") String debit_user_id) {
...
}

Ak skutočne požadujete parameter dopytu, príkaz curl by sa musel zmeniť:

curl -i -X POST http://localhost:8080/switch/apikongcall.do/transactions?mobile_number=917827448775

Z bezpečnostných dôvodov je pravdepodobne lepšie udržiavať mobilné číslo v tele správy, takže namiesto QueryParam by som použil FormParam.