public string post_urlencoded(string url, string cookies, string postData) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); try { request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded;"; if (cookies != "") { request.Headers.Add("Cookie", cookies); } // 参数 StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.GetEncoding("EUC-KR")); writer.Write(postData); writer.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string encoding = response.ContentEncoding; if (encoding == null || encoding.Length < 1) { encoding = "EUC-KR"; //默认编码 } StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)); string retString = reader.ReadToEnd(); reader.Close(); reader.Dispose(); response.Close(); response.Dispose(); return retString; } catch (WebException ex) { HttpWebResponse response = (HttpWebResponse)ex.Response; StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("euc-kr")); string retString = reader.ReadToEnd(); return "error"; } finally { if (request != null) { request.Abort(); } } }是什么意思
时间: 2024-02-10 14:04:33 浏览: 109
C#中HttpWebRequest的用法详解
这是一个 C# 语言编写的方法,用于向指定的 URL 发送 POST 请求,并返回服务器响应的数据。
方法中的参数说明如下:
- url:要请求的 URL;
- cookies:可选参数,表示要设置的 Cookie;
- postData:POST 请求要提交的数据。
该方法的实现流程如下:
1. 创建一个 HttpWebRequest 对象,设置请求的方法为 POST,Content-Type 为 application/x-www-form-urlencoded。
2. 如果需要设置 Cookie,使用 request.Headers.Add 方法添加 Cookie。
3. 创建一个 StreamWriter 对象,将 postData 写入请求流中,使用 EUC-KR 编码。
4. 发送请求并获取响应,使用 response.ContentEncoding 获取响应的编码方式,如果没有指定编码方式,则使用 EUC-KR 作为默认编码。
5. 创建一个 StreamReader 对象,读取响应流中的数据,并以指定的编码方式进行解码。
6. 关闭响应流和读写流,返回解码后的字符串。
7. 如果发生 WebException 异常,返回 "error"。
该方法的实现与请求需要使用 EUC-KR 编码无关,可以处理任何 Content-Type 为 application/x-www-form-urlencoded 的 POST 请求。
阅读全文