使用HttpWebRequest类发送Get/Post请求

913 阅读1分钟
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
  • 发送Get请求
String getTokenUrl = String.Format("http://test.com/api/getToken?a={0}&b={1}", "avalue", "bvalue");//url传递参数
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(getTokenUrl);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "GET";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (Stream stream = response.GetResponseStream())
    {
        using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
        {
            String strToken = reader.ReadToEnd();
            JObject tokenObj = JsonConvert.DeserializeObject<JObject>(strToken);
            Console.WriteLine("access_token:" + tokenObj["data"]["access_token"].ToString());
        }
    }
}
  • 发送Post请求
String accessToken = GetToken();
string sendMsgUrl = String.Format("http://test.com/api/sendMsg");
JObject sendObj = new JObject();
sendObj["senderId"] = senderId;
sendObj["senderName"] = senderName;
sendObj["phone"] = phone;
sendObj["message"] = message;
byte[] sendData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(sendObj));

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sendMsgUrl); 
request.ContentType = "application/json"; 
request.Method = "POST"; 
request.Headers.Add("Authorization",accessToken); 
Stream sendStream = request.GetRequestStream(); 
sendStream.Write(sendData,0,sendData.Length); 
sendStream.Close(); 
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { 
    using (Stream stream = response.GetResponseStream()) { 
        using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) { 

            String sendResult = reader.ReadToEnd();  
            JObject sendResultObj = JsonConvert.DeserializeObject<JObject>(sendResult); 

       if (Convert.ToInt32(sendResultObj["flag"])==0) { 
        Console.WriteLine("短信发送成功");
       } else { //失败  } 
    } 
  } 
}