C#postによるデータの送信と受信のサンプルソースコード

3556 ワード

次のコードは、C#がpostを介してデータを送信および受信する例に関するコードです.public partial class Post_Server : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
    string type = "";
    string Re = "";
    Re += " :";
    if (Request.RequestType.ToUpper() == "POST")
    {
        type = "POST";
        Re += type + "

"; SortedList table = Param(); if (table != null) { foreach (DictionaryEntry De in table) { Re += " :" + De.Key + " :" + De.Value + "
"; } } else { Re = " !"; } } else { type = "GET"; Re += type + "

"; NameValueCollection nvc = GETInput(); if (nvc.Count != 0) { for (int i = 0; i < nvc.Count; i++) { Re += " :" + nvc.GetKey(i) + " :" + nvc.GetValues(i)[0] + "
"; } } else { Re = " !"; } } Response.Write(Re); } private NameValueCollection GETInput() { return Request.QueryString; } private string PostInput() { try { System.IO.Stream s = Request.InputStream; int count = 0; byte[] buffer = new byte[1024]; StringBuilder builder = new StringBuilder(); while ((count = s.Read(buffer, 0, 1024)) > 0) { builder.Append(Encoding.UTF8.GetString(buffer, 0, count)); } s.Flush(); s.Close(); s.Dispose(); return builder.ToString(); } catch (Exception ex) { throw ex; } } private SortedList Param() { string POSTStr = PostInput(); SortedList SortList = new SortedList(); int index = POSTStr.IndexOf("&"); string[] Arr = { }; { Arr = POSTStr.Split('&'); for (int i = 0; i < Arr.Length; i++) { int equalindex = Arr[i].IndexOf('='); string paramN = Arr[i].Substring(0, equalindex); string paramV = Arr[i].Substring(equalindex + 1); { SortList.Add(paramN, paramV); } { SortList.Remove(paramN); SortList.Add(paramN, paramV); } } } { int equalindex = POSTStr.IndexOf('='); if (equalindex != -1) string paramN = POSTStr.Substring(0, equalindex); string paramV = POSTStr.Substring(equalindex + 1); SortList.Add(paramN, paramV); } { SortList = null; } } return SortList; }

}
protected void Button1_Click(object sender,EventArgs e){Encoding encode=System.Text.Encoding.GetEncoding.(utf-8);byte[]arrB=encode.GetBytes("aa=aa&bb=飛びやすい");myReq.Method="POST";myReq.CoontentType="application/x-www-form- urlencoded";myReq.ContentLength=arrB.Length;Stream outStream=eam=Stream myReq.GetRequestStream();outStream.Write(arrB,0,arrB.Length);outStream.Close();
    WebResponse myResp = myReq.GetResponse();
    Stream ReceiveStream = myResp.GetResponseStream();
    StreamReader readStream = new StreamReader(ReceiveStream, encode);
    Char[] read = new Char[256];
    int count = readStream.Read(read, 0, 256);
    string str = null;
    while (count > 0)
    {
        str += new String(read, 0, count);
        count = readStream.Read(read, 0, 256);
    }
    readStream.Close();
    myResp.Close();

    Response.Write(str);
}