Lire les en-têtes http de type post
Salut, je vais avoir des ennuis je suis en train d'apprendre services restful.J'ai créé un service web à l'aide de jax-rs, qui est illustré ci-dessous
@Path("/users")
public class Welcome {
@POST
@Consumes("text/xml")
@Produces("text/xml")
public Response welcome(String incomingXML){
return Response.status(200).entity("timestamp : " + incomingXML).build();
}
}
- Je utiliser le test suivant client de tester le service
public class TestService {
public static void main(String args[]) throws ParserConfigurationException, SAXException, IOException {
ClientConfig config = new DefaultClientConfig();
Client client=Client.create(config);
WebResource service=client.resource(getBaseURI());
String urlString = "http://localhost:8080/JaXRSDemo/rest/users";
URL url = new URL( urlString );
HttpURLConnection con = (HttpURLConnection) url.openConnection();
//set up url connection to get retrieve information back
con.setRequestMethod( "POST" );
con.setDoInput( true );
//stuff the Authorization request header
byte[] encodedPassword = ( userName + ":" + password ).getBytes();
con.setRequestProperty( "Authorization",encodedPassword.toString() );
Customer customer=new Customer();
customer.setName("noobstre");
customer.setPin(123455);
ClientResponse response=service.path("rest").path("users").type(MediaType.APPLICATION_XML).post(ClientResponse.class,customer);
System.out.println(" response " + response.getEntity(String.class));
}
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8080/JaXRSDemo").build();
}
}
Je veux utiliser le mot de passe dans la tête sur le côté serveur et faire une recherche avec la base de données.Le problème, je suis confronté à est comment puis-je lire les en-têtes sur le serveur.
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas très familier avec Jax-RS, mais vous pouvez utiliser les méthodes suivantes pour obtenir les informations d'en-tête que vous cherchez:
1.) Utiliser @HeaderParam
2.) Utiliser @Contexte
Espérons que cette aide!
Je l'ai résolu en utilisant Jersey Client
//infoclient
Sur le côté serveur
}