Hejsan! Här kommer en liten shot in the dark. Jag tänkte pröva att göra en POST till den sida som låg som ACTION i loginformuläret... Så jag gjorde en liten POST-rutin för detta enligt nedan. Detta var en ren gissning... Har inte kikat på problemet på några dagar. Skulle fortfarande behöva hjälp dock. Jag kan inte riktigt finna lösningen på det. du kan slänga in axwebbrowsern i din app. Hej. Tack ska ni ha grabbar. Jag tar med mig dessa rön och ser vad jag kan komma fram till. Har tyvärr inte haft möjlighet att jobba med det projektet på ett tag, men jag får förhoppningsvis tid till det snart igen.System.Net.WebClient - Logga in...
Jag önskar hjälp med följande lilla problem.
Det finns en website där jag finns som medlem och får då möjlighet att logga in i ett formulär. Från den sajten skulle jag vilja kunna tanka ner en del sidor. Jag har prövat lite med WebClient för att åstadkomma det jag vill, men det som händer är att min applikation, som försöker att koppla upp sig direkt mot den sida jag vill ha, vägras inträde och skickas istället iväg till login-sidan och det blir denna sidas kod som tankas ner. Det som händer om jag inte skulle vara inloggad (vilket min app så klart inte är).
Jahopp, tänkte jag och hittade WebClient.Credentials som, vad jag förstår, man kunde använda för att skicka en autentisering av vem jag är, men jag har inte lyckats med detta. Antingen är jag kass på att söka eller så finns det ingen bra hjälp att finna om detta. Jag har iaf inte hittat nåt som kan förklara detta för mig. Så nu ber jag er om hjälp.
Det jag försökt med har svällt ut till följande monstrum...
Stream s;
WebClient wc = new WebClient();
string targetUrl = "http://www.website.com/pages/id_80601/pagefetcher.asp?pageid=80601";
Uri uri = new Uri(targetUrl);
string UserName = "kalle";
string Password = "hemligt";
NetworkCredential netCred = new NetworkCredential(UserName, Password);
CredentialCache credCache = new CredentialCache();
credCache.Add(uri, "Basic", netCred);
wc.Credentials = credCache;
s = wc.OpenRead(targetUrl);
...och som sagt... Det som dimper ner i min stream "s" är sid-källan för login-sidan. Mina credentials verkar inte godtas. Är jag helt ute och cyklar?
Tack för hjälpen!
Kalle Henriksson
Sv: System.Net.WebClient - Logga in...
public string PostData(string sAddress, string sData){
WebClient wUpload = new WebClient();
byte[] bPostArray = Encoding.ASCII.GetBytes(sData);
byte[] bResponse = wUpload.UploadValues(sAddress, "POST", getPostValues(sData));
string sResponse = new string(Encoding.ASCII.GetChars(bResponse));
return sResponse;
}
...men som visade sig vara en flopp. Resultatet blev detsamma som för första försöket.
Inparametern sData motsvarar den parametersträng man skulle kunna skickat i URL:en för en websida. I mitt fall såg den ut så här ungefär... "Name=Kalle&Pwd=Hemligt&AnnanParam=Värde"... o.s.v.
sAddress är URL:en till validerings-sidan som fanns i ACTION på formuläret.
getPostValues(sData) är en rutin som tar hand om min inskickade parametersträng och returnerar en kollektion av typen NameValueCollection.
Men, skam den som ger sig! :o)
Jag hoppas fortfarande på tips och visdomsord från eder i forumet...
/Kalle Henriksson
System.Net.WebClient - Logga in...
Hjälp...
/KalleSv: System.Net.WebClient - Logga in...
låta app:en programatiskt mata in username
och password och sen låta musen ställa sig över go knappen
och klicka till utan att du behöver röra nåt.. :) !
Jag gjorde ett program som autosurfade hem flygfotobilder från lanmäteriets hemsida.
Funderar även på att tillverka ett program som automatiskt matar in mina skrapade koder till
internet banken så att jag kan spara nån minut och börja girera direkt :)
kan det va nåt?Sv:System.Net.WebClient - Logga in...
Kan detta vara nåt:
<code>
postvalue = "<input type=""hidden"" name=""username"" value=""test"">"
Dim http As New System.Net.WebClient
http.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
Dim d As Byte() = System.Text.Encoding.ASCII.GetBytes(postvalue)
Dim res As Byte() = http.UploadData("http://www.somewhere.com/login.aspx", "POST", d)
Dim resp As String = System.Text.Encoding.ASCII.GetString(res)
</code>
Detta har jag använt mig av för att posta data.
mvh,
PhilipSv: System.Net.WebClient - Logga in...
Thanks...
/Kalle