Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so dont bother with any of their useless mail servers here and just use oauth login instead. Thank the nice Russians for causing that. :)
Paste
Pasted as C# by se ( 14 years ago )
public class PostWebClient
{
public delegate void WebClientCallback(Boolean error, string result);
public WebClientCallback callback;
public String postData = "";
public CookieContainer cookies = null;
public PostWebClient(WebClientCallback obj)
{
this.callback = new WebClientCallback(obj);
}
public void download(Uri address)
{
HttpWebRequest request;
try
{
request = (HttpWebRequest)System.Net.WebRequest.Create(address);
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13";
request.Headers = new WebHeaderCollection();
if (cookies != null)
{
request.CookieContainer = cookies;
}
if (postData != "")
{
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.BeginGetRequestStream(new AsyncCallback(RequestReady), request);
}
else
{
request.Method = "GET";
request.BeginGetResponse(new AsyncCallback(ResponseReady), request);
}
}
catch (Exception e)
{
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(delegate()
{
callback(true, "Błąd #01"+e.ToString());
});
}
}
void RequestReady(IAsyncResult asyncResult)
{
HttpWebRequest request = asyncResult.AsyncState as HttpWebRequest;
using (Stream stream = request.EndGetRequestStream(asyncResult))
{
using (StreamWriter writer = new StreamWriter(stream))
{
writer.Write(postData);
writer.Flush();
}
}
request.BeginGetResponse(new AsyncCallback(ResponseReady), request);
}
void ResponseReady(IAsyncResult asyncResult)
{
HttpWebRequest request = asyncResult.AsyncState as HttpWebRequest;
HttpWebResponse response = null;
try
{
response = (HttpWebResponse)request.EndGetResponse(asyncResult);
string result = string.Empty;
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
result = reader.ReadToEnd();
}
}
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(delegate()
{
callback(false, result);
});
}
catch (Exception e)
{
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(delegate()
{
callback(true, "Błąd #02 - Brak połączenia z internetem"+e.ToString());
});
}
}
}
Revise this Paste