C# 使用HttpWebRequest,HttpWebResponse
C#中使用HttpWebRequest发送网络请求,HttpWebResponse接收网络请求
具体如下:
一、HttpWebRequest
1、HttpWebRequest 发送Get请求:
            //请求的地址
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://api.qq.com/tok?type=cli");
            //请求方法
            req.Method = "GET";
            //数据内容类型
            req.ContentType = "application/json";
            //请求的超时时间    10秒还没出来就超时
            req.Timeout = 10000;
            //接收响应的结果
            HttpWebResponse response = (HttpWebResponse)req.GetResponse();
            //接收HTTP响应的数据流
            using (Stream resStream = response.GetResponseStream())
            {
                //把数据流存入StreamReadr,选用编码格式
                using (StreamReader reader = new StreamReader(resStream, Encoding.UTF8))
                {
                    //通过ReadToEnd()把整个HTTP响应作为一个字符串取回,
                    //也可以通过 StreamReader.ReadLine()方法逐行取回HTTP响应的内容。
                    string responseContent = reader.ReadToEnd().ToString();
                }
            }
HTTP 内容类型(Content-Type)
普通文本                                                 "text/plain";
JSON字符串                                            "application/json";
未知类型(数据流)                                     "application/octet-stream";
表单数据(键值对)                                    "application/x-www-form-urlencoded";
表单数据(键值对)编码方式为 gb2312     "application/x-www-form-urlencoded;charset=gb2312";
表单数据(键值对)编码方式为 utf-8          "application/x-www-form-urlencoded;charset=utf-8";
多分部数据                                              "multipart/form-data";
提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。
该ContentType的属性包含请求的媒体类型。分配给ContentType属性的值在请求发送Content-typeHTTP标头时替换任何现有内容。
要清除Content-typeHTTP标头,请将ContentType属性设置为null。
2、HttpWebRequest 发送Post请求:
 public static string HttpPost(string Url, string postDataStr)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.ContentType = "application/json";//"application/x-www-form-urlencoded";
            request.ContentLength = postDataStr.Length;
            StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII);
            writer.Write(postDataStr);
            writer.Flush();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string encoding = response.ContentEncoding;
            if (encoding == null || encoding.Length < 1)
            {
                encoding = "UTF-8"; //默认编码 
            }
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
            string retString = reader.ReadToEnd();
            return retString;
        }

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号