一般分为:httpWebRequest和HttpClient
httpWebRequest适合于处理简单的网络请求,httpclient支持更强大,适合复复杂的网络请求的封装。
WebRequest request = HttpWebRequest.Create(URL);\
(1)httpWebRequest get请求
request.Method = "GET";
request.Headers["Cookie"] = "name = value";
request.Credentials = new NetworkCredential("accountKey","accountkeyOrPassword");
request.BeginGetResponse(ResponseCallbackm,request);
private async void ResponseCallback(IAsyncResult result){
HttpWebRequest httpWebRequest = (HttpWebRequest)result.AsyncState;
WebResponse webResponse = httpWebRequest.EndGetResponse(result);
//获取请求返回内容
using(Stream stream = webResponse.GetResponseStream())
using(StreamReader reader = new StreamReader(stream))
{
string content = reader.ReadToEnd();
}
}
(2)post请求
var request = HttpWebRequest.Create(URL);
request.Method = "POST";
request.BeginGetRequestStream(ResponseStreamCallbackPost,request);
private async void ResponseStreamCallbackPost(IAsyncResult result){
HttpWebRequest httpWebRequest = (HttpWebRequest)result.AsyncState;
using(Stream stream = httpWebRequest.EndGetRequestStream(result)){
string postString = "yourstring";
byte[]data = Encoding.UTF8.GetBytes(postString);
stream.write(data,0,data.Length);
}
}
httpWebRequest.BeginGetResponse(ResponseCallbackPost,httpWebRequest);
private async void ResponseCallbackPost(IAsyncResult result){
HttpWebRequest httpWebRequest = (HttpWebRequest)request.AsyncState;
WebResponse webResponse = httpWebRequest.EndGetResponse(result);
using(Stream stream = webResponse.GetResponseStream());
using(StreamReader reader = new StreamReader(stream)){
string content = reader.ReadToEnd();
}
}