Sicher, dass du deinen Code nicht einfach irgendwo rauskopiert hast..?
Naja, Debug.Print(quelltext), oder du setzt nen Haltepunkt und kopierst den Wert deiner Variable selber raus.
Jop, habe vorher nur nie mit Visual Studio gearbeitet, da ich aus Java komme und die Syntax ziemlich ähnlich ist, konnte ich da recht schnell einsteigen.
Das ein oder andere muss ich zwar auf MSDN nachschlagen, aber sonst keine Probleme. Meine Frage war lediglich, ob der Quelltext vom Debugger selbst kommt. Wie ich ihn auslesen kann, ist mir schon bewusst, dennoch danke
public class Http
{
public string PostRequest(string host, string path, string spostPacket)
{
var cookies = Cookies.GetInstance();
var cookieContainer = new CookieContainer();
byte[] postPacket = Encoding.UTF8.GetBytes(spostPacket);
var request = (HttpWebRequest) HttpWebRequest.Create("http://" + host + path);
request.CookieContainer = cookieContainer;
request.Method = "POST";
request.Host = host;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1";
request.ConnectionGroupName = "keep-alive";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postPacket.Length;
request.Proxy = new WebProxy();
foreach (var cookie in cookies.GetCookies())
{
request.CookieContainer.Add(cookie);
}
var dataStream = request.GetRequestStream();
dataStream.Write(postPacket, 0, postPacket.Length);
var response = (HttpWebResponse)request.GetResponse();
var responseType = response.ContentType;
dataStream = response.GetResponseStream();
var responseStream = new StreamReader(dataStream);
var html = responseStream.ReadToEnd();
if(response.Cookies.Count != 0)
{
List<Cookie> retCookie = new List<Cookie>();
for (int i = 0; i < response.Cookies.Count; i++)
{
retCookie.Add(response.Cookies[i]);
}
cookies.SetCookies(retCookie);
}
dataStream.Close();
return html;
}
public string GetRequest(string host, string path = "")
{
var cookies = Cookies.GetInstance();
var cookieContainer = new CookieContainer();
var request = (HttpWebRequest)WebRequest.Create("http://" + host + path);
request.CookieContainer = cookieContainer;
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
request.ConnectionGroupName = "keep-alive";
request.Host = host;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1";
request.Proxy = new WebProxy();
foreach (var cookie in cookies.GetCookies())
{
request.CookieContainer.Add(cookie);
}
var response = (HttpWebResponse)request.GetResponse();
var dataStream = response.GetResponseStream();
var responseStream = new StreamReader(dataStream);
var html = responseStream.ReadToEnd();
if (response.Cookies.Count != 0)
{
List<Cookie> retCookie = new List<Cookie>();
for (int i = 0; i < response.Cookies.Count; i++)
{
retCookie.Add(response.Cookies[i]);
}
cookies.SetCookies(retCookie);
}
dataStream.Close();
return html;
}
}
Code:
public class Cookies
{
private List<Cookie> _cookies = new List<Cookie>();
private static Cookies _cookiesInstance;
public static Cookies GetInstance()
{
if (_cookiesInstance != null)
return _cookiesInstance;
_cookiesInstance = new Cookies();
return _cookiesInstance;
}
private Cookies(){}
public List<Cookie> GetCookies()
{
return _cookies;
}
public void SetCookies(List<Cookie> cookies )
{
_cookies = cookies;
}
}
public class CookieEntity
{
public Cookie cookie { get; set; }
}
Das sind zwei alte Methoden von mir, zwar nicht perfekt nach den Normen gecoded, aber da kannst du über die Cookies immer checken, ob dein Login erfolgreich war. Außerdem werden die Cookies immer automatische gespeichert und wieder neu mitgegeben.
Ein Login bei epvp würde dann so aussehen:
Code:
var httpRequest = new Http();
var html = string.Empty;
html = httpRequest.GetRequest(@"www.elitepvpers.com");
html = httpRequest.PostRequest(@"www.elitepvpers.com", "/forum/login.php?do=login", @"vb_login_username=" + usrName + @"&vb_login_password=&cookieuser=1&s=&securitytoken=" + "guest" + "&do=login&vb_login_md5password="+ GetMd5Hash(password).ToLower() +"&vb_login_md5password_utf=" + GetMd5Hash(password).ToLower());
@Headpuster funktionieren bei dir Logins, welche mit Usernamen durchgeführt werden, die zb ein ♥ im Namen enthalten? Bei mir nicht, und ich bin zu blöd das richtige CharSet zu finden
c# httpwebrequest Travian 12/07/2017 - .NET Languages - 2 Replies Gude Leute ich hätt da mal ein anliegen ich will mir ein kleines Tool zur vereinfachten bedinung von Travian schreiben nur leider bekomme ich das irgendwie nicht auf die Reihe.
da mein Code nicht so recht funktioniert hat habe ich mir den code von jemand anderes mal geklaut aber der ergibt das gleiche problem.
Das Probleme ist er zeigt die Seite nicht richtig an und er baut keine truppen wenn ich auf Button1 click.
wenn mir einer das vielleicht mal flicken könnte oder mir erklären...
[VB] HttpWebRequest Problem -.- 02/02/2012 - .NET Languages - 1 Replies Hallo liebe Elitepvpers User,
ich habe leider folgendes Problem:
Ich möchte von dem Spam Email Anbieter "yopmail.com" meine Emails auslesen.
Dazu muss ich mich auf der Webseite einfach mit "test" Anmelden
Hierzu der HTTP Header : Siehe Anhang
accname = Account Name im Beispiel "test"
[C#]MD5-Cheksumme mit HttpWebRequest oä 08/18/2010 - .NET Languages - 1 Replies Ich will mir mal einen gescheiten Patcher für Metin2 machen..
Jetzt soll er von den Files auf meinem Server die Checksummen ausspucken.
Die Datei sollte nicht heruntergeladen werden...
System.IO.FileStream FileCheck = System.IO.File.OpenRead(Dateipfad);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvi der();
byte md5Hash = md5.ComputeHash(FileCheck);