C#postによるデータの送信と受信のサンプルソースコード
3556 ワード
次のコードは、C#がpostを介してデータを送信および受信する例に関するコードです.public partial class Post_Server : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
}
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();
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);
}