最近有個需求,需要用HTTP Post一段資訊,而且不是用Query String的方式,然後還要在Header中加認證資訊,之前用的WebRequest方式都不適用,於是找了新的方式,主要是參考How to: Send Data Using the WebRequest Class,我有做了一些修改,主要是Encoding跟Header的部分,剩下的差不多。
語法大概是長這樣,不過我是拿專案內的function貼過來才改的,直接拿去用如果不會動,可能是有哪邊改壞了XD,反正意思到了就好。
語法大概是長這樣,不過我是拿專案內的function貼過來才改的,直接拿去用如果不會動,可能是有哪邊改壞了XD,反正意思到了就好。
string GetRequest()
{
string body = "Line 1" + Environment.NewLine +
"Line 2" + Environment.NewLine
"Line 3" + Environment.NewLine ;
string Link = "http://www.died.tw";
string header = "PASSWORD";
byte[] byteArray = Encoding.GetEncoding("Big5").GetBytes(body);
WebRequest request = WebRequest.Create(Link);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("Authorization", header); //Header名稱自己改
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
string ResultCode = ((HttpWebResponse)response).StatusCode.ToString();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("Big5"));
string Result = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
if (ResultCode == "OK")
{
return Result;
}
else
{
return null;
}
}

No comments:
Post a Comment