PostRequest
Wie macht man mit .net 4 einen HTTP Postrequest?
Kleiner Wrapper:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security;
using System.Net;
using System.IO;
public class PostReqest
{
private IDictionary<string, string> parameters = new Dictionary<string, string>();
public IDictionary<string, string> Parameters
{
get
{
return this.parameters;
}
}
public string GetResponse(String url)
{
StringBuilder sb = new StringBuilder();
IList<string> keys = new List<string>(parameters.Keys);
for (int i = 0; i < keys.Count; i++)
{
string key = keys[i];
string value = parameters[key];
sb.Append(Uri.EscapeDataString(key));
sb.Append("=");
sb.Append(Uri.EscapeDataString(value));
if (i != keys.Count - 1)
{
sb.Append("&");
}
}
string txt = sb.ToString();
byte[] data = UTF8Encoding.UTF8.GetBytes(txt);
WebRequest myRequest = WebRequest.Create(url);
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// Send the data.
newStream.Write(data, 0, data.Length);
newStream.Close();
WebResponse webResp = myRequest.GetResponse();
Stream receiveStream = webResp.GetResponseStream();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
string resptext = readStream.ReadToEnd();
return resptext;
}
}
Angewandt:
PostReqest pr = new PostReqest();
pr.Parameters.Add("param1", "http://aff.aff.de");
pr.Parameters.Add("param2", "http://aff.aff.de");
string txt = pr.GetResponse("http://www.claude-glauser.ch/php/printparameters.php");