MirusMentis Skrevet 15. mars 2008 Skrevet 15. mars 2008 Trenger vel ikke nevne dette, men som dere sikkert ser så er jeg da relativt noob i C#. Har et lite program her, som setter sammen en url basert på hva jeg skriver i et par textBoxer. Url`n går til en webbasert sms tjeneste, som henter data fra GET. websiden gir en response med status i xml og ser slik ut. <?xml version="1.0" encoding="utf-8"?> <SmsResponse> <version>1</version> <result>1</result> <resultstring>success</resultstring> <description></description> <endcause></endcause> </SmsResponse> Webbrowsern er ikke synlig i formen, der er det kun en statusbar som viser fremdrift på lasting av websiden. Jeg vil gi brukeren tilbakemelding på hvordan sending av sms gikk. Jeg trenger da å legge det som står mellom <result> og </result> og tilsvarende for <resultstring> og <description> inn i variabler, som igjen "spyttes" ut i en textboks eller Messagebox. Noen som kan hjelpe meg på rett spor? Har søkt på forumet her, men finner mest info om hvordan man skriver til xml..
Manfred Skrevet 15. mars 2008 Skrevet 15. mars 2008 øverst: using System.Xml; så nede i koden: XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(resultString); // resultString er da xml-en som kommer i responsen string result = xDoc.SelectSingleNode("SmsResponse/result").InnerText; string resultstring = xDoc.SelectSingleNode("SmsResponse/resultstring").InnerText; string description = xDoc.SelectSingleNode("SmsResponse/description").InnerText; Du får si ifra hvis du har behov for en ny sms-tjeneste
MirusMentis Skrevet 15. mars 2008 Forfatter Skrevet 15. mars 2008 Det var så lett ja... Så på System.Xml, men viste ikke at man kunne skrive "topnivå/undernivå" formatet for html "tagene" Ang sms. Alltid åpen for forslag.. Bruker voipbuster i dag, men sliter med at avsender blir brukernavnet mitt..
Manfred Skrevet 16. mars 2008 Skrevet 16. mars 2008 Det visste ikke jeg tidligere heller og ville før gjort det på en veldig mye mer tumlete måte, men den der er grei, så lenge du vet "pathen" til xml-noden, og det ikke er så mange du skal ha tak i. Stemmer det. Er litt styr med voipbuster der. Jeg kan nok ikke matche prisen på € 0.024 på sms da, men kan tilby en rask og stabil sms-tjeneste i alle fall. Og siden jeg ikke får lov til å reklamere på forumet, så får du nesten sende meg en pm om du er interessert
steingrim Skrevet 16. mars 2008 Skrevet 16. mars 2008 Det var så lett ja... Så på System.Xml, men viste ikke at man kunne skrive "topnivå/undernivå" formatet for html "tagene" Det språket heter XPath og er et spørre-språk for xml. Man kan skrive mye mere avanserte queries enn det dere brukte det til nå, verdt å lære seg hvis man skal jobbe mye med xml
MirusMentis Skrevet 16. mars 2008 Forfatter Skrevet 16. mars 2008 øverst: using System.Xml; så nede i koden: XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(resultString); // resultString er da xml-en som kommer i responsen string result = xDoc.SelectSingleNode("SmsResponse/result").InnerText; string resultstring = xDoc.SelectSingleNode("SmsResponse/resultstring").InnerText; string description = xDoc.SelectSingleNode("SmsResponse/description").InnerText; Du får si ifra hvis du har behov for en ny sms-tjeneste Hmm har ikke fått testet dette enda da kilden til dette programmet ligger på jobben. Hvordan får jeg kjørt xDoc.SelectSingleNode(SmsResponse/result).InnerText; på innholdet i WebBrowser1 ?
Manfred Skrevet 16. mars 2008 Skrevet 16. mars 2008 Det gjør du ikke! Hvorfor skal alle bruke WebBrowser? Det er en GUI-kontroll, og det er jo ikke GUI du skal ha. WebClient er den kontrollen du skal bruke. Og der bruker du f.eks DownloadString() hvis det er en GET du skal sende. Skal du bruke POST må du til med en NameValueCollection og UploadValues() funksjonen
MirusMentis Skrevet 16. mars 2008 Forfatter Skrevet 16. mars 2008 Det gjør du ikke! Hvorfor skal alle bruke WebBrowser? Det er en GUI-kontroll, og det er jo ikke GUI du skal ha. WebClient er den kontrollen du skal bruke. Og der bruker du f.eks DownloadString() hvis det er en GET du skal sende. Skal du bruke POST må du til med en NameValueCollection og UploadValues() funksjonen Viste ikke at det fantes noen annen måte å gjøre det på.. jeg bare googlet meg frem til det. Kan godt bruke WebClient, men hva er den praktiske forskjellen? Har jo satt visible=false, så en bruker vil sansynligvis ikke merke noe forskjell? Kan jeg kjøre en progressbar på WebClients events? Tilgi meg hvis spørsmålene blir for dumme.. er relativt ny innenfor programmering.
Manfred Skrevet 16. mars 2008 Skrevet 16. mars 2008 altså. Dette vil ta så kort tid uansett, at du har ikke behov for en progress bar. Den praktiske forskjellen er at WebClient vil gå mye raskere, fordi det ikke er en GUI-kontroll med masse GUI-elementer som skal initialiseres. Beklager hvis jeg virket litt skarp i forrige innlegg. Mulig man har en report progress i WebClient, det er jeg faktisk ikke sikker på. Men som sagt så vil en liten request ta så kort tid, at du har ikke behov for noen progress bar.
MirusMentis Skrevet 16. mars 2008 Forfatter Skrevet 16. mars 2008 altså. Dette vil ta så kort tid uansett, at du har ikke behov for en progress bar. Den praktiske forskjellen er at WebClient vil gå mye raskere, fordi det ikke er en GUI-kontroll med masse GUI-elementer som skal initialiseres. Beklager hvis jeg virket litt skarp i forrige innlegg. Mulig man har en report progress i WebClient, det er jeg faktisk ikke sikker på. Men som sagt så vil en liten request ta så kort tid, at du har ikke behov for noen progress bar. No offence taken. Pussig at du nevner dette med hastighet, for det var nettop derfor jeg valgte å legge inn progressbaren.. det tar fort 5-10 sekunder før man respons fra den sms siden.. Fort gjort at jeg trykka send flere ganger siden det ikke skjedde noe.. Men nå som jeg kan vise resultatet som xml`n gir meg så kan jeg nok droppe progressbaren. OT: Jeg har et annent problem med oppretting/initialisering av arrays.. Kunne jeg sendt deg en pm på det, i stedet for å opprette en ny "dumme spørsmål tråd" ?
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå