IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Ecrire un XML-RPC demande


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Serbie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 42
    Par défaut Ecrire un XML-RPC demande
    Salut,
    J'essaie d'ecrire dans un fichier le XML-RPC demande avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	public void doPost(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
    	{
    		System.out.println("request.getContentLength()=" + request.getContentLength());
    		System.out.println("request.getContentType()=" + request.getContentType());
    		System.out.println("request.getParameterMap()=" + request.getParameterMap());
    	}
    Si le client envoie quatre demandes, le fichier contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    request.getContentLength()=208
    request.getContentType()=text/xml
    request.getParameterMap()={}
    request.getContentLength()=199
    request.getContentType()=text/xml
    request.getParameterMap()={}
    request.getContentLength()=227
    request.getContentType()=text/xml
    request.getParameterMap()={}
    request.getContentLength()=417
    request.getContentType()=text/xml
    request.getParameterMap()={}
    Donc, parce que le XML-RPC demande est valide, le reponse est recu, le longeur de contenu n'est pas zero, pourquoi le demande est ecrit comme un map vide?
    Merci et pardon de mon mauvais francais

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Serbie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 42
    Par défaut
    Réponse a moi-même: HttpServletRequestWrapper devrait être utilisé au lieu de HttpServletRequest. HttpServletRequestWrapper lit le contenu de HTTP demande et le place dans un membre. Aussi, getInputStream() et getReader() doivent être remplacer par autre versions. Le code irait comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    class BasicRequestWrapper extends HttpServletRequestWrapper
    {
    	private String content;
     
            // to wrap the original request
    	public BasicRequestWrapper(HttpServletRequest request) throws IOException
    	{
    		super(request);
    		// ... read the whole request.getInputStream() and store it into this.content
    	}
     
            // overloads to enable repetitive readings
    	public ServletInputStream getInputStream() throws IOException
    	{
    		final ByteArrayInputStream bais = new ByteArrayInputStream(this.content.getBytes());
    		ServletInputStream sis = new ServletInputStream()
    		{
    			public int read() throws IOException
    			{
    				return bais.read();
    			}
    		};
    		return sis;
    	}
     
            // overloads to enable repetitive readings
    	public BufferedReader getReader() throws IOException
    	{
    		return new BufferedReader(new InputStreamReader(this.getInputStream()));
    	}
     
    	public String getContent()
    	{
    		return this.content;
    	}
    }
    Servlet peut utiliser le "wrapper" avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    {
    		BasicRequestWrapper brw = new BasicRequestWrapper(request);
    		System.out.println("brw.getRequestURL()=" + brw.getRequestURL());
    		System.out.println("brw.getQueryString()=" + brw.getQueryString());
    		System.out.println("brw.getContentType()=" + brw.getContentType());
    		System.out.println("brw.getContentLength()=" + brw.getContentLength());
    		System.out.println("brw.getContent()=" + brw.getContent());
    		super.doPost(brw, response);		
    }

Discussions similaires

  1. [Choix] [Débutant] SOAP ou XML-RPC ?
    Par Noisette dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 15/01/2009, 17h31
  2. Multi connections en XML-RPC?
    Par yanndan dans le forum Modules
    Réponses: 9
    Dernier message: 28/02/2006, 10h17
  3. Perl, XML RPC et caractères spéciaux.
    Par yanndan dans le forum Modules
    Réponses: 4
    Dernier message: 14/02/2006, 11h36
  4. [SOAP] [XML-RPC] la différence
    Par david42 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/03/2004, 08h52
  5. Réponses: 4
    Dernier message: 23/10/2003, 08h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo