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

API standards et tierces Java Discussion :

Faire mumuse sur les URL : pas d'idées


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut Faire mumuse sur les URL : pas d'idées
    Bonjour,

    Je suis en train de réaliser une clasee qui va tester un site (en gros elle va faire ce qu'une personne fait derrière sont PC), donc voici ma classe
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    package org.skyrecon.skyline.emulation.main;
     
    import java.io.IOException;
     
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.skyrecon.skyline.emulation.util.HttpResponse;
     
    public class VirtualUser 
    {
    	private static HttpClient client = null; // unique emulation client instance
    	private static PostMethod auth = null;
    	private HttpClient http; // the HTTP transporter (unique)
    	private String script2connect = "" ;
    	private String website;
    	/** Create the virtual client
             * Virtual client are not personas, all virtual clients are doing the same thing
             * @param login
             * @param password
             * @throws IOException 
             */
    	public VirtualUser() throws IOException
    	{
    		// set log4j property
    		System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
    		this.website = "http://localhost/skyline/";
    		this.script2connect = "script/login.php";
            this.http = VirtualUser.getClient();
            System.out.println("Step 0 : Client emulation");
    	}
    	private static HttpClient getClient()
    	{
    		if(VirtualUser.client == null)
    		{
    			VirtualUser.client = new HttpClient();
    		}
    		return VirtualUser.client;
    	}
    	private static PostMethod getStep(String url)
    	{
    		if(VirtualUser.auth == null)
    		{
    			VirtualUser.auth = new PostMethod(url);
    		}
    		return VirtualUser.auth;
    	}
    	public void connect(String login, String password) throws HttpException, IOException
    	{
    		PostMethod method = VirtualUser.getStep(this.website+this.script2connect);
    	    System.out.println("Step 1 : Connection of user "+login);
    	    NameValuePair[] data = {
    	            new NameValuePair("login", login),
    	            new NameValuePair("passwd", password)
    	          };
    	    method.setRequestBody(data);
    	    method.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // to submit the form
    	    int responseCode = this.http.executeMethod(method);
    	    String responseBody = method.getResponseBodyAsString();
    	    if(responseCode==302)
    	    {
    	    	String newURL = this.website.concat(HttpResponse.getHeader(method,"location")); 
    	    	System.out.println("NOTICE :: Redirection to "+newURL);
    	    	System.out.println(this.website+newURL);
    	    }
    	    else if(responseBody.equals(""))
    	    {
    	    	System.out.println("Error : HTTP code "+responseCode);
    	   	}
     
     
    	}
    }
    le problème que j'ai c'est que newURL vaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/skyline/http://localhost/skyline/ ../panel.php
    et he vois pas comment arriver à mes fins, c'est-à-dire avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/skyline/http://localhost/skyline/panel.php
    je ne sais pas comment enlevé cette espace ni les points, et j'ai regardé du coté de la classe URL, et je ne vois pa ce qui pourrait correspondre à mes besoins.

    auriez vous des idées ?

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Tu ne serais pas en train de réimplémenter JMeter par hasard ?

    Sinon le ".." est le chemin relatif par rapport à ta dernière requête sur "script/login.php", donc à parser à la main pour déterminer la nouvelle URL.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut
    Citation Envoyé par djsnipe Voir le message
    Tu ne serais pas en train de réimplémenter JMeter par hasard ?
    non, enfin je ne sais pas si jmeter (je ne l'ai jamais utilisé) mais en fait ce que je veux, c'est une appli (java , non pas forcément) qui "émule" des utilisateurs et qui donc vérifie si mon appli web fonctionne bien (pas de pb nulle part ...).
    LE but c'est que ça soit appelé par script (crontab) afin de zapper la phase de test pendant le développement d'une appli web.
    Citation Envoyé par djsnipe Voir le message
    Sinon le ".." est le chemin relatif par rapport à ta dernière requête sur "script/login.php", donc à parser à la main pour déterminer la nouvelle URL.
    "parser à la main", comprend pas ?

    j'ai fais ç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
    /*** This method seems to be bizarre. Function to strip level (convert relative into absolute URL)
             * It's has been written in order to return absolute URL
             * @param A tab of String 
             * @return The complete full URL
             */
    	public static String strip(String[] url)
    	{
    		String path = "";
    		for(int i = url.length -1 ; i >=0 ; i--) // we seek for all elements and split ../ and ./
    		{
    			if(url[i].startsWith(".")) // if it's a relative URL
    			{
    				path+=url[i].substring(url[i].indexOf("/")+1,url[i].length());
    			}
    			else
    			{
    				path+=url[i];
    			}
    		}
    		return path;
    	}
    et cela correspond à mes besoins

    en tout cas, merci pour JMeter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur les URL Jsp
    Par carkiasis dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 26/11/2008, 13h42
  2. un point sur les pointeurs (pas fait exprés)
    Par yorukaze dans le forum Débuter
    Réponses: 17
    Dernier message: 22/01/2008, 01h00
  3. pb sur les url
    Par libremax dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/10/2007, 20h10
  4. Travail sur les URLs
    Par TalPen dans le forum Langage
    Réponses: 9
    Dernier message: 12/05/2006, 23h41

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