Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据.
HTTP同步请求
// get请求是查询字符串直接跟在URL后面
//post是把消息体包含查询字符串,满足把大量数据传递给服务器
//发送请求,"url"为访问的地址
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("url");
//ContentType为数据类型
//get请求ContentType为空,post请求ContentType为application/x-www-form-urlencoded
req.ContentType = "";
req.Method = "get";
//请求方法为get和post
//content消息体,get请求content为空,post请求为要传递的参数,如“AcctID=1
string content = "";
req.ContentLength=content.Length;
Stream s;
s = req.GetRequestStream();
//获取请求数据
StreamWriter sw =
new StreamWriter(s, System.Text.Encoding.ASCII);
sw.Write(content);
sw.Close();
//得到HTTP请求
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
s = res.GetResponseStream();
StreamReader sr =
new StreamReader(s, System.Text.Encoding.ASCII);
System.Text.StringBuilder sb =
new System.Text.StringBuilder();
char[] data =
new char[1024];
int nBytes;
do {
nBytes = sr.Read(data, 0, (
int)1024);
sb.Append(data);
}
while (nBytes == 1024);
HTTP异步请求
//发送请求,"url"为访问的地址
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("url");
//ContentType为数据类型
//get请求ContentType为空,post请求ContentType为application/x-www-form-urlencoded
req.ContentType = "";
req.Method = "get";
//请求方法为get和post
//content消息体,get请求content为空,post请求为要传递的参数,如“AcctID=1
string content = "";
req.ContentLength=content.Length;
Stream s;
s = req.GetRequestStream();
//获取请求数据
StreamWriter sw =
new StreamWriter(s, System.Text.Encoding.ASCII);
sw.Write(content);
sw.Close();
Handler h =
new Handler();
AsyncCallback callback =
new AsyncCallback(h.Callback);
//方法
//将请求对象作为状态对象传递
req.BeginGetResponse(callback, req);
回调函数,用类来表示
public class Handler
{
public void Callback(IAsyncResult ar)
{
//将Requeststate对象强制转化为webRequest对象
HttpWebRequest req = (HttpWebRequest)ar.AsyncState;
//得到与这个请求相关的响应对象
HttpWebResponse res = (HttpWebResponse)req.EndGetResponse(ar);
//开始从响应流中读取数据
Stream s = res.GetResponseStream();
StreamReader sr =
new StreamReader(s, System.Text.Encoding.ASCII);
System.Text.StringBuilder sb =
new System.Text.StringBuilder();
char[] data =
new char[1024];
int nBytes;
do {
nBytes = sr.Read(data, 0, (
int)1024);
sb.Append(data);
}
while (nBytes == 1024);
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。