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 Discussion :

[C#]Problème de localisation du proxy parmi mes classes


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 129
    Par défaut [C#]Problème de localisation du proxy parmi mes classes
    Salut à tous,

    J'ai une application qui se connecte au webService d'Amazon et j'utilise une dll afin d'accéder aux méthodes et propriétés de recherche, etc.

    Je suis relativement très peu versé dans le concept de classe. J'ai un peu de difficulté à m'y retrouver.

    Voilà mon problème : lorsque mon application utilise cette dll afin de me connecter au webservice d'Amazon, lorsqu'il n'y a pas de serveur proxy, tout fonctionne. Cependant, lorsqu'il y a un proxy, il me demande l'autorisation. J'ai une idée des infos que je dois lui fournir, soit quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    WebProxy proxy = new WebProxy(monProxyIP:80, true);
    proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
     
    monwebservice.Proxy = proxy;
    monwebservie.Credential = System.Net.CredentialCache.DefaultCredentials;
    Mais comme je passe par diverses classes, je n'ai pas accès directement à l'instance de mon wevbservice et aucune propriété de proxy n'est définie à l'intérieur des mes classes. Alors, j'aimerais savoir où je peux insérer ces données de proxy. Je vous donne en gros ce que mon dll a comme classes.

    1. Classe request, la classe de base pour toutes les requêtes. C'est ici que l'objet du webservice est instancié. Cette classe ressemble à quelque chose comme :

    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
    using System;
    using System.Data;
    using AmazonFR.WebServices;
     
    namespace AmazonFR
    {
     
                 public abstract class Request
    	{
     
    		protected AWSECommerceService amazonService = new AWSECommerceService();
     
    		#region Properties
    		/// <summary>
    		/// Amazon Web Services Developer Subscription Id
    		/// </summary>
    		protected string subscriptionId;
    		/// <summary>
    		/// Gets or sets the Amazon Web Services Developer Subscription Id
    		/// </summary>
    		public string SubscriptionId
    		{
    			get{return subscriptionId;}
    			set{subscriptionId = value;}
    		}
     
    		/// <summary>
    		/// Amazon Associate Tag
    		/// </summary>
    		protected string associateTag = "webservices-20";
    		/// <summary>
    		/// Gets or sets the Amazon Associate Tag
    		/// </summary>
    		public string AssociateTag
    		{
    			get{return associateTag;}
    			set{associateTag = value;}
    		}
    		#endregion
     
    		/// <summary>
    		/// Abstract constructor
    		/// </summary>
            public Request() { }
     
    	}
    }
    2. J'ai une deuxième classe qui dérive de la première et qui effectue sur l'objet créé par la première classe des requêtes sur le site d'Amazon. Elle ressemble à quelque chose de ce genre :
    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
    75
    76
    77
    78
    79
    80
    81
     
    using System;
    using System.Data;
    using AmazonFR.WebServices;
     
    namespace AmazonFR
    {
    	/// <summary>
    	/// A request providing the ability to search and browse Amazon (using ECS4 operation ItemSearch)
    	/// </summary>
    	public sealed class SearchRequest: Request
    	{
                    // ItemSearch necessary members
    		private ItemSearch itemSearch = new ItemSearch();
    		private ItemSearchRequest itemSearchRequest = new ItemSearchRequest();
                              private ItemSearchResponse itemSearchResponse;
     
    		#region Search Parameters
    		...
    		#endregion
     
    		/// <summary>
    		/// Initializes a new instance of the AmazonFR.SearchRequest class with no arguments.
    		/// </summary>
    		public SearchRequest() { }
     
    		/// <summary>
    		/// Sends a search request to Amazon ECS with the non-null search parameters. The result is returned as a AmazonFR.WebServices.Items.
    		/// </summary>
    		public Items Search(bool useCache) 
    		{          
    			// Setting the basic Request parameters
    			itemSearch.SubscriptionId = subscriptionId;
    			itemSearch.AssociateTag = associateTag;
     
    			// Request Parameters
    			itemSearchRequest.Keywords = this.keywords;
    			itemSearchRequest.ItemPage = this.itemPage;
    			itemSearchRequest.SearchIndex = this.searchIndex.ToString();
    			itemSearchRequest.Actor = this.actor;
    			itemSearchRequest.Artist = this.artist;
    			...
     
    			itemSearchRequest.ResponseGroup = new string [] { "Large"};
    			itemSearch.Request = new ItemSearchRequest[1] {itemSearchRequest};
     
    			if (useCache)
    			{
    				...							else
    			{
    				try
    				{
    					itemSearchResponse = amazonService.ItemSearch(itemSearch);
    				}
    				catch (Exception e)
    				{
    					throw new Exception ( e.ToString() );
    				}
    			}
     
    			Items[] itemsResponse = itemSearchResponse.Items; 
     
    			// Verify the response
    			if ( itemsResponse == null ) 
    				throw new Exception ( "Server Error - no response received" );
     
    			if ( itemsResponse[0].Request.Errors != null )
    				throw new Exception( itemsResponse[0].Request.Errors[0].Message );
     
    			if ( itemsResponse != null ) 
    			{ 
    				Items items = itemsResponse[0];
    				if ( items != null ) 
    				{
    					return items; 
    				} 
    			}
    			return null;
    		}
    	}
    }
    Alors, vous comprendrez qu'à partir de ma form, je n'ai pas accès à l'objet amazonService créé par la classe Request et donc je ne peux à partir de là établir les conditions du proxy. Où puis-je le faire ? Dans la première classe, dans la deuxième ? Je vous avoue que j'en perds mon latin (le pire c'est que je ne l'ai jamais eu...).

    Merci à l'avance de m'éclairer.

    iDaaX

  2. #2
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Par défaut
    Moi j'aurais fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
     public Request() { 
    WebProxy proxy = new WebProxy(monProxyIP:80, true);
    proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
     
    amazonService.Proxy = proxy;
    amazonService.Credential = System.Net.CredentialCache.DefaultCredentials;
    	}
    Je garanti rien parce que j'ai jamais utilisé ce service web mais au filling, peut être sait on jamais...

    Bonne journée

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 129
    Par défaut
    Salut mimibobo,

    Effectivement, c'est ce qu'il fallait faire. Je ne suis pas très versé dans le concept de classe mais j'aurais dû y penser, il s'agissait de mettre le tout dans le constructeur !

    Merci à toi encore une fois.

    iDaaX

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

Discussions similaires

  1. Proxy pour localisation d'adresse [ASP.NET]
    Par Unusual dans le forum IGN API Géoportail
    Réponses: 12
    Dernier message: 13/12/2011, 14h56
  2. Localisation d'une base Postgresql sur mdk 9.1
    Par Gregco dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 10/06/2003, 18h46
  3. [Serveur Proxy] Windows XP PRO suffit-il à lui seul ?
    Par Yoh dans le forum Développement
    Réponses: 3
    Dernier message: 21/05/2003, 11h23
  4. Les serveur proxy socks
    Par berry dans le forum Réseau
    Réponses: 6
    Dernier message: 26/01/2003, 17h56
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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