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

VB.NET Discussion :

migration code java vers le vb.net


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut migration code java vers le vb.net
    Bonjour,

    Excusez moi d'avance si le sujet n'est pas dans la bonne section.

    J'ai besoin de migrer un projet java en vb.net. J'ai cependant quelque problèmes à porter certains bout de code.

    En java j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     URI uri = new URI(
                        this.protocol,
                        this.domain,
                        this.path,
                        params,
                        null);
                return uri.toASCIIString();
    En vb.net j'ai utilisé l'équivant, cad:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Dim uri As New UriBuilder(Me.protocol, Me.domain, 80, Me.path, params)
    Mais à la sortie j'ai une exception "ExtraValue".

    Merci de votre aide

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    l'erreur est expliquée ici : http://msdn.microsoft.com/fr-fr/library/19z9y1as.aspx
    il faut voir le contenu de tes variables je pense ...

    sinon il serait plus simple de migrer de java vers c#, c'est comme vb.net mais avec la syntaxe de java

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    l'erreur est expliquée ici : http://msdn.microsoft.com/fr-fr/library/19z9y1as.aspx
    il faut voir le contenu de tes variables je pense ...

    sinon il serait plus simple de migrer de java vers c#, c'est comme vb.net mais avec la syntaxe de java
    Les contenus de mes variables sont:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me.protocol = "http"
    Me.domain = "localhost:8080"
    Me.path = "KJ/FFFF/1/"
    params = "lenght=1"
    Je suis contraint de migrer vers le vb.net.

    mais en C# ca donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    URI uri = new URI(this.protocol, this.domain, this.path, params, null);

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    J'ai à ajouté au contenu de params "?", et j'ai plus d'exception.

    Merci,

    PS: Je ne met pas résolu, car j'avance encore dans la migration

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    J'ai un bout de code pour pour envoyer recevoir des requets en java:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    URL url = new URL(u);
    HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
     
     con.setRequestProperty("User-Agent", "User");
     con.setRequestProperty("Cookie", this.session);
     con.setDoInput(true);
     
     int status = con.getResponseCode();
     String hf = con.getHeaderField("Set-Cookie");
    EN vb.net, de ce que j'ai implémenté, ca plante au niveau de la deuxième ligne avec comme exception
    "This header must be modified using the appropriate property. Parameter name: name".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Dim request As HttpWebRequest = CType(WebRequest.Create(targetURI), HttpWebRequest)
    request.Headers.Add(HttpRequestHeader.UserAgent, "User")
    request.Headers.Add(HttpRequestHeader.Cookie, Me.session)
     
     response = (CType(request.GetResponse(), HttpWebResponse))
     status = response.StatusCode
     Dim hf As String = request.GetResponse.Headers("Set-Cookie")

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    ca me parrait assez explicite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.useragent = "User"

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    ca me parrait assez explicite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.useragent = "User"
    Merci

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Quel est l'équivalent en .Net de la methode getErrorStream qui permet de récupérer un flux d'erreur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    URL url = new URL(u);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     
    connection.getInputStream();
    connection.getErrorStream();

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    quand tu appelles le getresponse tu obtient un httpwebresponse (à caster)
    sur ce webresponse tu as le status (200(=ok), 404 etc..)
    et tu peux faire .getresponsestream pour récupérer le retour html

    pas sur que ca réponde à ta question ...

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Voilà ce que j'ai essayé de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    response = (CType(request.GetResponse(), HttpWebResponse))
    Dim sr As StreamReader
    sr = New StreamReader(request.GetResponse.GetResponseStream)
    j'ai une exception
    Stream was not readable.

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    getresponse fait l'appel à la requete http
    donc il ne faut pas la faire 2 fois déjà

    essaye sr = New StreamReader(response.GetResponseStream)

  12. #12
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Lorsque le status est Ok (200) je récupère bien une stream.
    Mais lorsque c'est un status error (500), une exception est levée...
    et plus moyen de faire quoi que ce soit,alors que j'ai besoin justement de lire le flux lorsque c'est une erreur...

  13. #13
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118

  14. #14
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Cela donne en vb.net:

    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
      Catch wexc1 As WebException
     
                    Dim sr As Stream
                    ' any statusCode other than 200 gets caught here
                    If wexc1.Status = WebExceptionStatus.ProtocolError Then
                        ' can also get the decription: 
                        'Dim response As HttpWebResponse= ((HttpWebResponse)wexc1.Response).StatusDescription;
                        Dim response As WebResponse = wexc1.Response
                        sr = response.GetResponseStream
     
                    End If
                Finally
                    If response IsNot Nothing Then
                        'response.close()
                    End If
                End Try

  15. #15
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Est ce qu'il est possible de lire un flux de données envoyé par le serveur et le stoquer directement dans un tableau de Bytes au lieu d'une string?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     response = (CType(request.GetResponse(), HttpWebResponse))
      Dim sr As StreamReader
      sr = New StreamReader(response.GetResponseStream)
      Dim sr2 As String = sr.ReadToEnd

  16. #16
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    j'ai trouvé une fonction qui a comme paramètre une stream et permet de récupérer un tableau de Byte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Private Function GetStreamAsByteArray(ByVal stream As System.IO.Stream) As Byte()
     
                Dim streamLength As Integer = Convert.ToInt32(stream.Length)
     
                Dim fileData As Byte() = New Byte(streamLength) {}
     
                ' Read the file into a byte array
                stream.Read(fileData, 0, streamLength)
                stream.Close()
     
                Return fileData
     
            End Function
    Mais à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim streamLength As Integer = Convert.ToInt32(stream.Length)
    j'ai une exception
    This stream does not support seek operations.
    Ya t'il un moyen d'éviter cette exception?

  17. #17
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    non

    la classe stream expose des méthodes et propriétés
    les héritiers de stream peuvent ne pas supporter toutes les méthodes et propriétés selon le stream (tcp/ip, fichier etc...)

    par contre readtoend retourne un string certes, mais il doit bien y avoir des méthodes qui sortent des bytes (ou un seul dans le pire des cas, et à ajouter dans un collection via une boucle)
    pour trouver il suffit d'utiliser l'intellisense

  18. #18
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    J'ai trouvé ce bout de code qui résoud le problème

    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
     
    Dim webrespSNYDetails As HttpWebResponse
    webrespSNYDetails = webreqSNYDetails.GetResponse
     
    'Convert the data into a string and return it
     
    Dim streamSNYDetails As Stream = webrespSNYDetails.GetResponseStream
    Dim strEncoding = webrespSNYDetails.ContentEncoding
     
    Dim streamMemStream As New MemoryStream
    Dim streamWriter As New BinaryWriter(streamMemStream)
     
    Dim readStream As New BinaryReader(streamSNYDetails)
    streamWriter.Write(readStream.ReadBytes(webrespSNYDetails.ContentLength))
     
    Me.ImageStream = streamMemStream.ToArray()
    http://forums.asp.net/t/1048305.aspx/1

  19. #19
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    J'ai un souci avec l'encodage, certains caractères ne s'affiche pas correctement...

    La fonction GetStreamAsByteArray contient le code au dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim data As Byte()
    Dim text As Char()
    data = GetStreamAsByteArray(response)
    text = Encoding.ASCII.GetChars(data)
    Dans le tableau de char text certaines cases j'ai des "carrés" et les autres lettre sont écrite de cette manière "G"c, "a"c,etc.

    De même que les retour que "\n" que je suis sencé recevoir à pour valeur "Nothing".
    Il ya sans doute un souci d'encodage, mais je n'arrive pas à trouver le bon

  20. #20
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    es-tu sûr que c'est de l'ascii de l'autre côté ?

Discussions similaires

  1. migration code java vers html , javascript
    Par momdev dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 04/06/2015, 17h10
  2. Migration code JavaScript vers API Java
    Par ejazz75 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 12/07/2013, 10h02
  3. [Google Maps] Migration code javascript vers API JAVA
    Par ejazz75 dans le forum APIs Google
    Réponses: 1
    Dernier message: 11/07/2013, 20h00
  4. PB I/O Fichier - Du code Java vers jsp/Javascript
    Par kouaak dans le forum Struts 2
    Réponses: 3
    Dernier message: 14/11/2008, 16h38
  5. Reprise d'un code C++ vers Visual C#.NET
    Par kinouseb dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/02/2007, 14h32

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