实例详解C#实现http不同方法的请求
程序员文章站
2023-12-17 19:49:52
1、不带参数的post请求
public static string post(string url)
{
string result = "";...
1、不带参数的post请求
public static string post(string url) { string result = ""; httpwebrequest req = (httpwebrequest)webrequest.create(url); req.method = "post"; httpwebresponse resp = (httpwebresponse)req.getresponse(); stream stream = resp.getresponsestream(); //获取内容 using (streamreader reader = new streamreader(stream, encoding.utf8)) { result = reader.readtoend(); } return result; }
2、带参数的post请求
public static string post(string url,dictionary<string,string> dic) { string result = ""; httpwebrequest req = (httpwebrequest)webrequest.create(url); req.method = "post"; req.contenttype = "application/x-www-form-urlencoded"; #region 添加post 参数 stringbuilder builder = new stringbuilder(); int i = 0; foreach (var item in dic) { if (i > 0) builder.append("&"); builder.appendformat("{0}={1}", item.key, item.value); i++; } byte[] data = encoding.utf8.getbytes(builder.tostring()); req.contentlength = data.length; using (stream reqstream = req.getrequeststream()) { reqstream.write(data, 0, data.length); reqstream.close(); } #endregion httpwebresponse resp = (httpwebresponse)req.getresponse(); stream stream = resp.getresponsestream(); //获取响应内容 using (streamreader reader = new streamreader(stream, encoding.utf8)) { result = reader.readtoend(); } return result; }
3、不带参数的get请求
public static string get(string url) { string result = ""; httpwebrequest req = (httpwebrequest)webrequest.create(url); httpwebresponse resp = (httpwebresponse)req.getresponse(); stream stream = resp.getresponsestream(); try { //获取内容 using (streamreader reader = new streamreader(stream)) { result = reader.readtoend(); } } finally { stream.close(); } return result; }
4、带参数的get请求
public static string get(string url, dictionary<string, string> dic) { string result = ""; stringbuilder builder = new stringbuilder(); builder.append(url); if (dic.count > 0) { builder.append("?"); int i = 0; foreach (var item in dic) { if (i > 0) builder.append("&"); builder.appendformat("{0}={1}", item.key, item.value); i++; } } httpwebrequest req = (httpwebrequest)webrequest.create(builder.tostring()); //添加参数 httpwebresponse resp = (httpwebresponse)req.getresponse(); stream stream = resp.getresponsestream(); try { //获取内容 using (streamreader reader = new streamreader(stream)) { result = reader.readtoend(); } } finally { stream.close(); } return result; }
5、自定义http请求头
httpwebrequest req = (httpwebrequest)webrequest.create(url); req.method = "get"; req.headers["accept-language"] = "zh-cn,zh;q=0.8"; req.referer = "https://www.baidu.com/"; httpwebresponse resp = (httpwebresponse)req.getresponse(); stream stream = resp.getresponsestream(); string result = ""; //注意,此处使用的编码是:gb2312 //using (streamreader reader = new streamreader(stream, encoding.default)) using (streamreader reader = new streamreader(stream, encoding.getencoding("gb2312"))) { result = reader.readtoend(); }