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

C# Discussion :

Erreur {"'content' is an unexpected token. Expecting white space. Line 1, position 136."}


Sujet :

C#

  1. #21
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Yeah, 44k de HTML sur une seule ligne !!!

    Citation Envoyé par nana92 Voir le message
    Je decide dajouter cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     responseString = responseString.Replace("&", "&amp;").Replace("\"", "&quot;").Replace(">", "&gt;").Replace("<", "&lt;").Replace("'", "&apos;");
    Et pourquoi tu fais ça ? Ça revient justement à supprimer les caractères qui vont structurer ton XML.

    Bon, j'essaie de déméler ça entre midi et deux.
    Plus je connais de langages, plus j'aime le C.

  2. #22
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    car je pensais que ca allais supprimer les erreurs de tout mon string dun coup plutot que de voir un par un .
    Merci infiniment


    Je tiens a ajouter que le code marche parfaitement en java .
    C'est c# qui me ait de sproblemes .


    Je tiens a ajouter aussi que avant dajouter cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      responseString = responseString.Replace("&", "&amp;").Replace("\"", "&quot;").Replace(">", "&gt;").Replace("<", "&lt;").Replace("'", "&apos;");
    J'avais ajouter ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      int i = 0; int l = responseString.Length;
                    while (i <= l) {
                        int j = i + 1; int k = i + 2;
                        if (responseString[i] == '=' && responseString[j] == '"') i = i + 2;
                        else if (responseString[i] == '"' && responseString[j] >= 'a' && responseString[j] <= 'z') {
                            responseString = responseString.Insert(j, " "); i = i + 2;
                        } else i = i + 1;
                    }
    mais lerreur subvenue etait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    +		$exception	{"An error occurred while parsing EntityName. Line 30, position 25."}	System.Exception {System.Xml.XmlException}
    donc jen avais marre de faire ligne par ligne surtt que javais aucun moyen de savoir ou etait la ligne 30,position 25 .


    Mercii

  3. #23
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 695
    Points
    10 695
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par nana92 Voir le message
    Je tiens a ajouter que le code marche parfaitement en java .
    C'est c# qui me ait de sproblemes .
    Non. Si ton XML est foireux de base, quelque soit le langage que tu utilises, ça va te faire n'importe quoi.

    De plus, HTML, même si cela ressemble à du XML, n'est pas du XML. Si tu veux pouvoir manipuler du HTML comme du XML, alors il faut que tu aies du XHTML. Ce que j'ai l'impression, c'est que ton code java utilise un parser HTML. Tu essaies de le convertir en C# en utilisant un parser XML. Du coup, ça coince, et c'est normal.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #24
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par dorinf Voir le message
    Non. Si ton XML est foireux de base, quelque soit le langage que tu utilises, ça va te faire n'importe quoi.

    De plus, HTML, même si cela ressemble à du XML, n'est pas du XML. Si tu veux pouvoir manipuler du HTML comme du XML, alors il faut que tu aies du XHTML. Ce que j'ai l'impression, c'est que ton code java utilise un parser HTML. Tu essaies de le convertir en C# en utilisant un parser XML. Du coup, ça coince, et c'est normal.
    Du coup quel solution aurais tu a me proposer pour que la conversion puisse avoir lieu ?

  5. #25
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 695
    Points
    10 695
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par nana92 Voir le message
    Du coup quel solution aurais tu a me proposer pour que la conversion puisse avoir lieu ?
    Dans un premier temps, de poster le code Java, qu'on puisse voir exactement ce qu'il fait. Cela nous permettra de mieux t'orienter par la suite et nous éviter de donner des informations erronées.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  6. #26
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par dorinf Voir le message
    Dans un premier temps, de poster le code Java, qu'on puisse voir exactement ce qu'il fait. Cela nous permettra de mieux t'orienter par la suite et nous éviter de donner des informations erronées.
    je cherche le code en JAVA des que je le trouve je te lenvoi !!! merci beaucoup ... mais en attendant sans le code tu crois quon puet faire qqchose ... juste pour que jessaye entre temps

  7. #27
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Dans un premier temps, de poster le code Java, qu'on puisse voir exactement ce qu'il fait. Cela nous permettra de mieux t'orienter par la suite et nous éviter de donner des informations erronées.
    Voici le code en Java.
    Code java : 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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    import org.w3c.dom.Document;
    import org.xml.sax.InputSource;
     
    import com.creditguard.xpo.client.XpoRequest;
     
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.StringReader;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
    public class Main {
     
        public static void main(String[] args) {
     
            if (args.length != 7)
            {
                log("Arguments Error. Please apply: [userName] [password] [serverName] [terminalNumber] [token] [Folder] [FileName]");
                return;
            }
            String int_in = "<ashrait><request><command>doDeal</command><version>1001</version><language>Eng</language><mayBeDuplicate>0</mayBeDuplicate><doDeal><terminalNumber>" + args[3] + "</terminalNumber><cardId>" + args[4] + "</cardId><cardExpiration/><transactionType>Debit</transactionType><creditType>RegularCredit</creditType><currency>ILS</currency><transactionCode>Phone</transactionCode><total/><validation>cardNo</validation><user>mytestj201</user></doDeal></request></ashrait>";
            String user = args[0];
            String password = args[1];
            String serverName = args[2];
     
            XpoRequest xpoReq = new XpoRequest();
            String response = xpoReq.runRequest(int_in, user, password, serverName);
            if (response.equals("The client could not retrieve the XPO Web Service answer.")) {
                log("Problem connecting to Credit Guard. please check [serverName]. Error: " + response);
                return;
            }
     
            Document doc = null;
            try {
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = factory.newDocumentBuilder();
                InputSource is = new InputSource(new StringReader(response));
                doc = builder.parse(is);
            }
            catch (Exception e) {
                log("Problem parsing answer from Credit Guard. Error: " + e.getMessage());
                return;
            }
     
            doc.getDocumentElement().normalize();
            String resultCode = doc.getElementsByTagName("result").item(0).getTextContent();
            String resultDescription = doc.getElementsByTagName("message").item(0).getTextContent();
            if (!resultCode.equals("000")){
                log("Request Faild. Error code: " + resultCode + ". Description: " + resultDescription);
                return;
            }
            String resultCard = doc.getElementsByTagName("cardNo").item(0).getTextContent();
            String expDate = doc.getElementsByTagName("cardExpiration").item(0).getTextContent();
     
     
            String[] lines = { "[token]", "Card = " + resultCard, "ExpDate = " + expDate, "Result = " + resultCode, "Description = " + resultDescription };
     
            if (!args[5].endsWith("\\") && (!args[5].endsWith("/")))
                args[5] += "\\";
     
            File file = new File(args[5]);
            if (!file.exists()) {
                if (!file.mkdir()) {
                    log("Directory [" + args[5] + "] has failed to be created.");
                    return;
                }
            }
     
            file = new File(file, args[6]);
            FileWriter fw = null;
            try {
                fw = new FileWriter(file);
                for (int i = 0; i < lines.length; i++) {
                    fw.write(lines[i] + "\n");
                }
                fw.close();
            } catch (IOException ex) {
                log("File [" + args[5] + args[6] + "] has failed to be created. Error: " + ex.getStackTrace());
                log(ex.getMessage());
                return;
            }
     
            log("File [" + args[5] + args[6] + "] created successfully");
        }
     
        public static void log(String msg) {
            //First print in for me
            System.out.println(msg);
     
            //set datetime
            DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            Date date = new Date();
            String time = dateFormat.format(date);
     
            FileOutputStream fop = null;
            File file;
            try {
                String currentDir = System.getProperty("user.dir");
                file = new File(currentDir + "\\NBCreditGuard_Log.txt");
                fop = new FileOutputStream(file, true);
     
                // if file doesnt exists, then create it
                if (!file.exists()) {
                    file.createNewFile();
                }
     
                // get the content in bytes
                byte[] contentInBytes = (time + " " + msg + "\r\n").getBytes();
     
                fop.write(contentInBytes);
                fop.flush();
                fop.close();
     
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (fop != null) {
                        fop.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    Merci Bcpppppppppp !!!!!!!!!!!!!

    C#
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Xml;
     
    namespace NBCreditGuard {
        class Program {
            static void Main(string[] args) {
                if (args.Length != 7) {
                    ///////////il y a ecrit toker=5eme argument faire gaff ds lexception
                    log("Arguments Error. Please apply: [userName] [password] [serverName] [terminalNumber] [token] [Folder] [FileName]");
                    return;
                }
     
                HttpWebResponse response;
     
                XmlDocument xmlDoc = new XmlDocument();
                try {
     
                    response = createMPITransaction(args[0], args[1], args[2], args[3], args[4]);
                    string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
     
                    //int i = 0; int l = responseString.Length;
                    //while (i <= l) {
                    //    int j = i + 1; int k = i + 2;
                    //    if (responseString[i] == '=' && responseString[j] == '"') i = i + 2;
                    //    else if (responseString[i] == '"' && responseString[j] >= 'a' && responseString[j] <= 'z') {
                    //        responseString = responseString.Insert(j, " "); i = i + 2;
                    //    } else i = i + 1;
                    //}
     
               //     responseString = responseString.Replace("&", "&amp;").Replace("\"", "&quot;").Replace(">", "&gt;").Replace("<", "&lt;").Replace("'", "&apos;");
     
                //    xmlDoc.LoadXml(responseString);
                    xmlDoc.Load(responseString);
                } catch (Exception ex) {
                    log("Problem connecting to Credit Guard. Error: " + ex.Message);
                    return;
                }
     
                string Results = xmlDoc.GetElementsByTagName("result").Item(0).InnerText;
                string ResultType = xmlDoc.GetElementsByTagName("message").Item(0).InnerText;
                if (!Results.Equals("000")) {
                    log("Request Faild. Error code: " + Results + ". Description: " + ResultType);
                    return;
                }
                string ResultCard = xmlDoc.GetElementsByTagName("cardNo").Item(0).InnerText;
                string ResultExpDate = xmlDoc.GetElementsByTagName("cardExpiration").Item(0).InnerText;
     
                if (!Directory.Exists(args[5])) {
                    try {
                        Directory.CreateDirectory(args[5]);
                    } catch (Exception ex) {
                        log("Directory [" + args[5] + "] has failed to be created. Error: " + ex.Message);
                        return;
                    }
                }
     
                string[] lines = { "[token]", "Card = " + ResultCard, "ExpDate = " + ResultExpDate, "Result = " + Results, "Description = " + ResultType };
     
                try {
                    if (!args[5].EndsWith("\\") && !(args[5].EndsWith("/")))
                        args[5] += "\\";
                } catch (Exception ex) {
                    log(ex.Message);
                }
     
                try {
                    System.IO.File.WriteAllLines(args[5] + args[6], lines);
                } catch (Exception ex) {
                    log("File [" + args[5] + args[6] + "] has failed to be created. Error: " + ex.Message);
                    return;
                }
     
                log("File [" + args[5] + args[6] + "] created succefuly");
            }
     
            private static HttpWebResponse createMPITransaction(string user, string password, string server, string terminal, string token) {
                string postString = "user=" + user + "&password=" + password + "&int_in=<ashrait><request><command>doDeal</command><version>1001</version><language>Eng</language><mayBeDuplicate>0</mayBeDuplicate><doDeal><terminalNumber>" + terminal + "</terminalNumber><cardId>" + token + "</cardId><cardExpiration/><transactionType>Debit</transactionType><creditType>RegularCredit</creditType><currency>ILS</currency><transactionCode>Phone</transactionCode><total/><validation>cardNo</validation><user/></doDeal></request></ashrait>";
     
                // create a request
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(server);
                request.KeepAlive = false;
                request.ProtocolVersion = HttpVersion.Version10;
                request.Method = "POST";
     
                // turn our request string into a byte stream
                byte[] postBytes = Encoding.GetEncoding("UTF-8").GetBytes(postString);
     
                // this is important - make sure you specify type this way
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = postBytes.Length;
                request.Timeout = 3000;
     
                Stream requestStream = request.GetRequestStream();
     
                //// now send it
                requestStream.Write(postBytes, 0, postBytes.Length);
                requestStream.Close();
     
                // grab te response and print it out to the System.Diagnostics.Debug along with the status code
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
     
                return response;
            }
     
            private static void log(String msg) {
                System.Diagnostics.Debug.WriteLine(msg);
                FileStream fs = File.Open(Directory.GetCurrentDirectory() + "\\NBCreditGuard_Log.txt", FileMode.Append);
                DateTime date = DateTime.Now;
                Byte[] info = new UTF8Encoding(true).GetBytes(date.ToString() + " " + msg + "\r\n");
                fs.Write(info, 0, info.Length);
                fs.Close();
            }
        }
    }

  8. #28
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 695
    Points
    10 695
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    J'ai l'impression que le problème ne vient pas du traitement de la réponse (car en java, c'est bien du XML qui est parsé), mais de la réponse elle-même !

    Avec le code que vous nous avez fourni, la réponse attendue est du style
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <root>
    <result>...</result>
    <message>...</message>
    <cardNo>...</cardNo>
    ...
    </root>

    Hors, rien de tout cela dans l'extrait que vous nous avez fourni. Il s'agit d'un code HTML avec la présence d'un formulaire pour login/mot de passe. Comme si l'identification n'était pas réussi et donc que la requête était redirigée vers un formulaire d'authentification.

    Donc, pour vérifier tout cela, il faut :
    • Récupérer la réponse obtenue via le code Java et la mettre dans un fichier ;
    • Récupérer la réponse obtenue via le code C# et la mettre dans un fichier ;
    • Comparer les fichiers.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  9. #29
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Bonjour,

    J'ai l'impression que le problème ne vient pas du traitement de la réponse (car en java, c'est bien du XML qui est parsé), mais de la réponse elle-même !

    Avec le code que vous nous avez fourni, la réponse attendue est du style
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <root>
    <result>...</result>
    <message>...</message>
    <cardNo>...</cardNo>
    ...
    </root>

    Hors, rien de tout cela dans l'extrait que vous nous avez fourni. Il s'agit d'un code HTML avec la présence d'un formulaire pour login/mot de passe. Comme si l'identification n'était pas réussi et donc que la requête était redirigée vers un formulaire d'authentification.

    Donc, pour vérifier tout cela, il faut :
    • Récupérer la réponse obtenue via le code Java et la mettre dans un fichier ;
    • Récupérer la réponse obtenue via le code C# et la mettre dans un fichier ;
    • Comparer les fichiers.
    Merci infiniment de ta patience.
    J'essai d'executer mon programme en java en ayant telecharger netbeans pour ainsi debugger mais il s'arrete a ce niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import com.creditguard.xpo.client.XpoRequest;
    le code en java n'a pas ete ecrit par moi ... je comprend pas pk il me fais une erreur ici?

    Merci bcp ....

    Ps: Quel fichier as tu recu en executant java ?

    Merci

  10. #30
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 695
    Points
    10 695
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par nana92 Voir le message
    Ps: Quel fichier as tu recu en executant java ?
    Je ne l'ai pas exécuté justement ! Je n'ai pas le projet, ni la configuration, etc... C'est donc à toi de le faire...
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  11. #31
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 895
    Points : 1 911
    Points
    1 911
    Par défaut
    J'ai l'impression que tu essaies d'obtenir d'un serveur web une page puis que tu veux l'analyser au moyen d'un parser xml. Étant donnée rigueur bien connue du html je pense que tu vas au devant des ennuis. Quel est le problème que tu essaies de résoudre au départ ?

  12. #32
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Noxen Voir le message
    J'ai l'impression que tu essaies d'obtenir d'un serveur web une page puis que tu veux l'analyser au moyen d'un parser xml. Étant donnée rigueur bien connue du html je pense que tu vas au devant des ennuis. Quel est le problème que tu essaies de résoudre au départ ?
    Deja Merci Beaucoup de l'interet que tu portes a mon probleme.
    En fait mon travail est de resoudre les problemes (mon boss me donne un programme et en 2 mots je dois me debrouiller , je suis toute nouvelle) .
    Donc il m'a donner le programme en me demandant de resoudre le probleme il ma dit que ce n'etait pas normal que ca ne marchait pas .
    le programme est celui-cu en c#.

    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Xml;
    
    namespace NBCreditGuard {
        class Program {
            static void Main(string[] args) {
                if (args.Length != 7) {
                    ///////////il y a ecrit toker=5eme argument faire gaff ds lexception
                    log("Arguments Error. Please apply: [userName] [password] [serverName] [terminalNumber] [token] [Folder] [FileName]");
                    return;
                }
    
                HttpWebResponse response;
    
                XmlDocument xmlDoc = new XmlDocument();
                try {
    
    
                    response = createMPITransaction(args[0], args[1], args[2], args[3], args[4]);
                    string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();    
                    
                    xmlDoc.LoadXml(responseString);
    
    
    
                } catch (Exception ex) {
                    log("Problem connecting to Credit Guard. Error: " + ex.Message);
                    return;
                }
    
                string Results = xmlDoc.GetElementsByTagName("result").Item(0).InnerText;
                string ResultType = xmlDoc.GetElementsByTagName("message").Item(0).InnerText;
                if (!Results.Equals("000")) {
                    log("Request Faild. Error code: " + Results + ". Description: " + ResultType);
                    return;
                }
                string ResultCard = xmlDoc.GetElementsByTagName("cardNo").Item(0).InnerText;
                string ResultExpDate = xmlDoc.GetElementsByTagName("cardExpiration").Item(0).InnerText;
    
                if (!Directory.Exists(args[5])) {
                    try {
                        Directory.CreateDirectory(args[5]);
                    } catch (Exception ex) {
                        log("Directory [" + args[5] + "] has failed to be created. Error: " + ex.Message);
                        return;
                    }
                }
                string[] lines = { "[token]", "Card = " + ResultCard, "ExpDate = " + ResultExpDate, "Result = " + Results, "Description = " + ResultType };
                try {
                    if (!args[5].EndsWith("\\") && !(args[5].EndsWith("/")))
                        args[5] += "\\";
                } catch (Exception ex) {
                    log(ex.Message);
                }
                try {
                    System.IO.File.WriteAllLines(args[5] + args[6], lines);
                } catch (Exception ex) {
                    log("File [" + args[5] + args[6] + "] has failed to be created. Error: " + ex.Message);
                    return;
                }
                log("File [" + args[5] + args[6] + "] created succefuly");
            }
    
            private static HttpWebResponse createMPITransaction(string user, string password, string server, string terminal, string token) {
    
    
                string postString = "user=" + user + "&password=" + password + "&int_in=<ashrait><request><command>doDeal</command><version>1001</version><language>Eng</language><mayBeDuplicate>0</mayBeDuplicate><doDeal><terminalNumber>" + terminal + "</terminalNumber><cardId>" + token + "</cardId><cardExpiration/><transactionType>Debit</transactionType><creditType>RegularCredit</creditType><currency>ILS</currency><transactionCode>Phone</transactionCode><total/><validation>cardNo</validation><user/></doDeal></request></ashrait>";
    
                // create a request
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(server);
                request.KeepAlive = false;
                request.ProtocolVersion = HttpVersion.Version10;
                request.Method = "POST";
    
                // turn our request string into a byte stream
                byte[] postBytes = Encoding.GetEncoding("UTF-8").GetBytes(postString);
    
                // this is important - make sure you specify type this way
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = postBytes.Length;
                request.Timeout = 3000;
    
    
    
                Stream requestStream = request.GetRequestStream();
    
                //// now send it
                requestStream.Write(postBytes, 0, postBytes.Length);
                requestStream.Close();
    
    
                // grab te response and print it out to the System.Diagnostics.Debug along with the status code
    
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
    
    
                return response;
            }
    
            private static void log(String msg) {
                System.Diagnostics.Debug.WriteLine(msg);
                FileStream fs = File.Open(Directory.GetCurrentDirectory() + "\\NBCreditGuard_Log.txt", FileMode.Append);
                DateTime date = DateTime.Now;
                Byte[] info = new UTF8Encoding(true).GetBytes(date.ToString() + " " + msg + "\r\n");
                fs.Write(info, 0, info.Length);
                fs.Close();
            }
        }
    }

    et les parametres envoyes sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    1.user
    2.mot de passe
    3.url du site pour entrer puis ca 
     8803375 1085330375065080 .\ TOKEN712892689884.$$$

    J'ai limpression que la ligne en gras pose probleme mais je ne comprend pas pk .
    Merci infiniment

  13. #33
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    J'avais essaye avec ca .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
       responseString = responseString.Replace("&", "&amp;").Replace("\"", "&quot;").Replace(">", "&gt;").Replace("<", "&lt;").Replace("'", "&apos;");
    mais ca ma laisse qq erreurs que je n'arrive vraiment pas a resoudre.
    Merci beaucoup

  14. #34
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Je ne l'ai pas exécuté justement ! Je n'ai pas le projet, ni la configuration, etc... C'est donc à toi de le faire...
    Bonjour,

    J'ai essaye de comparer avec le Java mais aussi celui de Java ne marche pas alors j'ai decide d'essayer de resoudre le probleme sans comparaison.
    Merci bcp de ton aide t de ton soutien.

  15. #35
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 695
    Points
    10 695
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par nana92 Voir le message
    J'ai limpression que la ligne en gras pose probleme mais je ne comprend pas pk .
    Ce n'est pas parce qu'une erreur survient sur une ligne que c'est cette ligne la fautive. En l'occurrence, ici, ce sont les données qui devraient être du XML mais qui ne l'est pas. Le problème se situe donc avant.

    Citation Envoyé par nana92 Voir le message
    J'ai essaye de comparer avec le Java mais aussi celui de Java ne marche pas alors j'ai decide d'essayer de resoudre le probleme sans comparaison.
    Je pense que c'est une erreur. Tu as un code Java qui envoi des paramètres (on ne sait pas comment) et qui récupère une réponse fonctionnelle.
    Tu as un code C# qui envoie ces mêmes paramètres en POST mais qui n'a pas une réponse fonctionnelle.
    Reprenons le code Java : xpoReq.runRequest(int_in, user, password, serverName).

    On ne sait pas comment sont passés int_in, user et password. En GET, en POST, via un en-tête dans la requête ? Un mixte de ces possibilités ? En HTTP ou HTTPS ?

    La class XpoRequest ne semble pas très connue par Google. Est-ce une classe interne chez vous ? Il faudrait y jeter un oeil si possible... ou à sa documentation.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  16. #36
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Ce n'est pas parce qu'une erreur survient sur une ligne que c'est cette ligne la fautive. En l'occurrence, ici, ce sont les données qui devraient être du XML mais qui ne l'est pas. Le problème se situe donc avant.



    Je pense que c'est une erreur. Tu as un code Java qui envoi des paramètres (on ne sait pas comment) et qui récupère une réponse fonctionnelle.
    Tu as un code C# qui envoie ces mêmes paramètres en POST mais qui n'a pas une réponse fonctionnelle.
    Reprenons le code Java : xpoReq.runRequest(int_in, user, password, serverName).

    On ne sait pas comment sont passés int_in, user et password. En GET, en POST, via un en-tête dans la requête ? Un mixte de ces possibilités ? En HTTP ou HTTPS ?

    La class XpoRequest ne semble pas très connue par Google. Est-ce une classe interne chez vous ? Il faudrait y jeter un oeil si possible... ou à sa documentation.

    En effet en Java je n'ai pas reussi a trouver d'ou provenait la class xporequest . Tous ces programmes existaient deja ce n'est pas moi qui les ai ecrit donc maintenant je nessaie pas de comparer mais dessaeyr de regler le probleme de nouveau .
    Je boss aevc visual studio les parametres sont envoyes par "properties" qui sont automatiquement renvoyes des le debut du programme au main (args).


    Mercii de ton aide

  17. #37
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 695
    Points
    10 695
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par nana92 Voir le message
    je nessaie pas de comparer mais dessaeyr de regler le probleme de nouveau .
    L'objectif n'est pas de comparer pour comparer, mais de comparer pour trouver la source de l'erreur. De ce que vous nous avez donné comme informations, la source pour moi se situe plutôt au niveau de la requête et de son envoi que du traitement de la réponse (cf. mon commentaire plus haut). Vous pouvez donc faire tous les traitements que vous voulez sur la réponse, si le problème est bien sur la requête cela ne résoudra pas votre problème. Faire la comparaison permettra de déterminer où se situe l'erreur et donc d'aiguiller les recherches.

    Citation Envoyé par nana92 Voir le message
    Je boss aevc visual studio les parametres sont envoyes par "properties" qui sont automatiquement renvoyes des le debut du programme au main (args).
    Je parle de comment sont passés les paramètres lors de l'appel du webservice, pas sur le comment ils sont récupérés par l'application.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

Discussions similaires

  1. Unexpected token operator, expected punc
    Par mapmip dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/07/2014, 13h52
  2. [HSQLDB] Probleme de Unexpected token
    Par nicdo77 dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 02/08/2007, 16h11
  3. org.hibernate.hql.ast.QuerySyntaxError: unexpected token
    Par oughlad dans le forum Hibernate
    Réponses: 9
    Dernier message: 26/05/2006, 14h20
  4. [EJBQL] unexpected token DISTINCT
    Par vseb99 dans le forum Java EE
    Réponses: 1
    Dernier message: 17/05/2006, 11h34
  5. Réponses: 36
    Dernier message: 07/05/2006, 15h35

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