Avatar billede koldstar Nybegynder
25. oktober 2005 - 13:13 Der er 23 kommentarer og
1 løsning

XmlTextReader - Gmail

Hej, jeg har nedenstående kode, som jeg bruger til at connecte til forskellige xml-tjenester, men når jeg prøver at connecte til Gmail får jeg fejlen:

The remote server returned an error: (401) Unauthorized.

Koden jeg bruger kan ses herunder. Jeg har selvfølgelig udskriftet user med mit gmail brugernavn og password med min adgangskode. Hvis jeg kopierer linien op i adresselinien i min browser kommer der en flot xml-struktur frem med mine nyeste e-mails. Jeg er derfor helt sikker på at URL'en er korrekt.

Dim reader As XmlTextReader = New XmlTextReader(https://user:passwordw@gmail.google.com/gmail/feed/atom)

Dim ds As DataSet = New DataSet
ds.ReadXml(reader)

Return ds

Hvad skal jeg gøre for at få det til at virke?

Håber der er nogen der kan hjælpe :)
Avatar billede jokkejensen Novice
25. oktober 2005 - 13:21 #1
private static XmlDocument GetGmailFeed(string userName, string password)
{

    HttpWebRequest req =
    (HttpWebRequest)WebRequest.Create(https://gmail.google.com/gmail/feed/atom);
    req.Method = "GET";
    req.Credentials = new NetworkCredential(userName,password);
    XmlDocument response = new XmlDocument();

    HttpWebResponse resp;

    resp = (HttpWebResponse)req.GetResponse();

    if(resp.StatusCode==HttpStatusCode.OK)
    {
      XmlTextReader reader = new XmlTextReader(resp.GetResponseStream());
      response.Load(reader);
      reader.Close();
    }

    resp.Close();
    return response;

}


Kilde : http://www.dotnetjunkies.com/WebLog/kevdaly/archive/2004/12/24/38612.aspx
Avatar billede koldstar Nybegynder
25. oktober 2005 - 13:31 #2
okay, jeg forsøger lige at oversætte til vb.net... så vender jeg tilbage :)
Avatar billede jokkejensen Novice
25. oktober 2005 - 13:44 #3
okay, sig til hvis du ikke kan så skal jeg nok gøre det..
Avatar billede koldstar Nybegynder
25. oktober 2005 - 13:53 #4
det kan jeg ikke :)

jeg har fået det til dette:

  Private Function GetGmailFeed(ByVal userName As String, ByVal password As String) As XmlDocument
        Dim req As System.Net.HttpWebRequest  'HttpWebRequest
        req = req.Create("https://gmail.google.com/gmail/feed/atom")
        req.Method = "GET"
        req.Credentials = New System.Net.NetworkCredential(userName, password)
        Dim response As XmlDocument = New XmlDocument

        Dim resp As System.Net.HttpWebResponse

        resp = req.GetResponse()

        If resp.StatusCode = Net.HttpStatusCode.OK Then
            Dim reader As XmlTextReader = New XmlTextReader(resp.GetResponseStream())
            response.Load(reader)
            reader.Close()
        End If

        resp.Close()
        Return response

    End Function
Avatar billede koldstar Nybegynder
25. oktober 2005 - 13:54 #5
det giver samme fejl som før:

The remote server returned an error: (401) Unauthorized.
Avatar billede jokkejensen Novice
25. oktober 2005 - 14:02 #6
har du husket kodeord ?
Avatar billede koldstar Nybegynder
25. oktober 2005 - 14:08 #7
ja, jeg gør sådan:

Dim x As New XmlDocument

x = GetGmailFeed("koldstar", "minkode")
x.Save("test.xml")

Dim ds As New DataSet
ds.ReadXml("test.xml")
Me.DataGrid2.DataSource = ds
Me.DataGrid2.DataBind()
Avatar billede koldstar Nybegynder
25. oktober 2005 - 14:08 #8
den fejler i linien

resp = req.GetResponse()
Avatar billede jokkejensen Novice
25. oktober 2005 - 14:18 #9
Dim req As System.Net.HttpWebRequest  'HttpWebRequest
        req = req.Create("https://koldstar%80gmail.com:PASSWORD@gmail.google.com/gmail/feed/atom")
        req.Method = "GET"
        Dim response As XmlDocument = New XmlDocument

        Dim resp As System.Net.HttpWebResponse

        resp = req.GetResponse()

        If resp.StatusCode = Net.HttpStatusCode.OK Then
            Dim reader As XmlTextReader = New XmlTextReader(resp.GetResponseStream())
            response.Load(reader)
            reader.Close()
        End If



Prøv lige den...
Avatar billede koldstar Nybegynder
25. oktober 2005 - 14:29 #10
hmm, stadig samme fejl...

Også hvis jeg tager og kopierer urlen direkte ind i adrsselinien. Der virker det kun med: https://user:password@gmail.google.com/gmail/feed/atom
Avatar billede koldstar Nybegynder
25. oktober 2005 - 14:30 #11
din kode fejler stadig i linien: resp = req.GetResponse()

Er det fordi jeg tester det på localhost? Den burde vel også kunne connecte?
Avatar billede koldstar Nybegynder
25. oktober 2005 - 14:36 #12
testede lige på mit webhotel, som giver samme fejl... øv

Har du nogle ideer?
Avatar billede jokkejensen Novice
25. oktober 2005 - 19:24 #13
Sorry skulle lige hjem fra job, pendler fra aalborg til århus

Nej det er sku underligt, jeg kan desværre ikke selv kigge på det, ejer ikke en gmail konto, men hvis du har mulighed for at sætte en x-tra op vil jeg godt forsøge...

Mvh
Avatar billede koldstar Nybegynder
25. oktober 2005 - 19:34 #14
okay, det gør jeg så.

Kan du ikke sende mig en mail til koldstar#gmail.com ? Så sender jeg adgangskoden til testkontoen tilbage.
Avatar billede christian Nybegynder
26. oktober 2005 - 12:56 #15
Først og fremmest skal du kunne åbne:
https://user:passwordw@gmail.google.com/gmail/feed/atom
i internet explorer...

Det kan jeg ikke (her GMail) er dog ret sikker på at jeg har kunne, så det tyder på at de ikke tillader username og password i url'en mere da det er usikkert.
Så du skal nok gøre sådan som jokkejensen skriver:
req.Credentials = New System.Net.NetworkCredential(userName, password)
username skal være uden @gmail.com

Taget fra google:
Which aggregators support Gmail?
Any aggregator that supports Atom 0.3, SSL/HTTPS, and HTTP authentication will work with Gmail's Atom feed.
Avatar billede christian Nybegynder
26. oktober 2005 - 12:57 #16
der skulle stå (har gmail)
Avatar billede koldstar Nybegynder
26. oktober 2005 - 13:08 #17
Hej christian
Jeg kan sagtens åbne https://user:password@gmail.google.com/gmail/feed/atom i explorer. Både med min egen konto, min kærestes og den testkonto jeg netop har oprettet. Problemet er at det som jokkejensen foreslår ikke virker for mig... Jeg bruger username er uden @gmail.com, så jeg er ret sikker på at jeg gør det rigtigt.
Avatar billede christian Nybegynder
26. oktober 2005 - 13:22 #18
Bliver du ikke promtet for password (sådan en challenge response)?
Det kan måske være at du har sat hak i "husk password"
Avatar billede koldstar Nybegynder
26. oktober 2005 - 14:28 #19
nej, jeg bliver kun promptet hvis jeg skiver noget ikke gyldigt i username og password...
Det virker med alle mine konti også på pc'ere hvor jeg ikke har været på før, så den med hak i husk password holder desværre ikke...

Men det virker kun, i en ny browser session. Dvs. hvis jeg først forsøger med forkert username + password kan jeg ikke komme på. Jeg skal åbne en ny browser før det virker igen.
Avatar billede christian Nybegynder
26. oktober 2005 - 14:33 #20
Det er mystisk.
Hvis jeg åbner siden i internet explorer med mit user og pass får jeg en:
The page cannot be displayed

Hvis jeg åbner https://gmail.google.com/gmail/feed/atom promter den om user og pass

Hvis jeg åbner https://user:password@gmail.google.com/gmail/feed/atom i firefox bliver jeg promtet om user og pass
Avatar billede christian Nybegynder
26. oktober 2005 - 14:35 #21
-------------------
Kom forresten til at tænke på at MS vist nok har fjernet muligheden for username:password@url.dk på et tidspunkt... altså via en windows update opdatering.

Det var vist fordi den kunne bruges til phishing http//opdater.oplysninger.nordea.dk@194.34.334.12

Any ways, jeg kan nok ikke hjælpe
Avatar billede koldstar Nybegynder
26. oktober 2005 - 15:48 #22
ja, du har ret, det virker ikke i mozialla... men det løser desvære stadig ikke mit oprindelige problem :(

Jeg er dog klar over at løsningen bliver noget ligennde jokkejensens svar :)
Avatar billede koldstar Nybegynder
27. oktober 2005 - 12:58 #23
jokkejensen> Kan du få det til at virke hos dig med test-kontoen??
Avatar billede koldstar Nybegynder
28. september 2006 - 16:23 #24
må vist hellere lukke dnene her. Kan få det til at virke med en "rigtig" applikation men desværre ikke en asp eller aspx side...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester