HttpRequest Get和Post调用其他页面的方法
2024-08-30 04:29:40
HttpRequest Get和Post调用其他页面的方法,需要的朋友可以参考一下
//Get请求方式
private string RequestGet(string Url)
{
string PageStr = string.Empty;//用于存放还回的html
Uri url = new Uri(Url);//Uri类 提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。就是处理url地址
try
{
HttpWebRequest httprequest = (HttpWebRequest)WebRequest.Create(url);//根据url地址创建HTTpWebRequest对象
#region 参数设置
httprequest.Method = "get";
//---------------------------------------------设定一些参数(不必要可以)
//httprequest.KeepAlive = false;//持久连接设置为false
//httprequest.ProtocolVersion = HttpVersion.Version11;// 网络协议的版本
//httprequest.Proxy = WebProxy.GetDefaultProxy();//服务器代理
//httprequest.ContentType = "application/x-www-form-urlencoded";//http 头
//httprequest.AllowAutoRedirect = true;
//httprequest.MaximumAutomaticRedirections = 10;
//httprequest.Timeout = 30000;//设定超时十秒(毫秒)
//httprequest.UserAgent = "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)"; //浏览器
//=================================================
#endregion
HttpWebResponse response = (HttpWebResponse)httprequest.GetResponse();//使用HttpWebResponse获取请求的还回值
Stream steam = response.GetResponseStream();//从还回对象中获取数据流
StreamReader reader = new StreamReader(steam, Encoding.GetEncoding("gb2312"));//读取数据Encoding.GetEncoding("gb2312")指编码是gb2312,不让中文会乱码的
PageStr = reader.ReadToEnd();
reader.Close();
}
catch (Exception e)
{
PageStr += e.Message;
}
return PageStr;
}
//Post请求方式,于Get的方式写法相似,所以解释就些少一点了
private string RequestPost(string Url,string Context)//两个参数分别是Url地址和Post过去的数据
{
string PageStr=string.Empty;
Uri url = new Uri(Url);
byte[] reqbytes=Encoding.ASCII.GetBytes(Context);
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "post";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = reqbytes.Length;
Stream stm = req.GetRequestStream();
stm.Write(reqbytes, , reqbytes.Length); stm.Close();
HttpWebResponse wr = (HttpWebResponse)req.GetResponse();
Stream stream = wr.GetResponseStream();
StreamReader srd= new StreamReader(stream,Encoding.GetEncoding("gb2312"));
PageStr += srd.ReadToEnd();
stream.Close();
srd.Close();
}
catch (Exception e)
{
PageStr += e.Message;
}
return PageStr;
}
public string WebClientGet(string url)
{
var client = new WebClient();
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
var stream = client.OpenRead(url);
if (stream == null) return "";
var reader = new StreamReader(stream, Encoding.Default);
var result = reader.ReadToEnd();
stream.Close();
reader.Close();
return result;
}
最新文章
- 关于Kendo UI的使用心得
- [POJ3277]City Horizon
- 数据库开发及ADO.NET
- iOS各种动画效果
- hdu 1024
- 用过coreData或者sqlite吗?读写是分线程的吗?
- [Errno 11004] getaddrinfo failed
- gsoap 超时(timeout)设置
- CSS中padding和margin以及用法
- Angularjs在360兼容模式下取数据缓存问题解决办法
- 序列化战争:主流序列化框架Benchmark
- CTF--web
- [Swift]LeetCode709. 转换成小写字母 | To Lower Case
- Memorise Me!——用数值做地址,实现快速查找
- C++中,有哪4种与类型转换相关的关键字?各有什么特点?应该在什么场合下使用?
- win7获取system32所有权
- CASUAL_NCT
- Linux基础命令---init进程
- 关于hp proliant sl210t服务器远程iLO接口的管理配置
- js清除未知定时器的方法
热门文章
- 2019-2020-1 20199312《Linux内核原理与分析》第四周作业
- python 操作excle 之第三方库 openpyxl学习
- xfce 快捷键 命令整理
- 块状链表 codevs 2333弹飞绵羊
- 分布式的一致性(分布式事物)-------2PC详述
- 【2018.07.27】(字符串/找相同)学习KMP算法小记
- IDEA上安装Scala环境执行测试
- 2018-2019-2 20165234 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
- 对象转型、迭代器Iterator、Set集合、装箱与拆箱、基本数据类型与字符串的转换、TreeSet集合与对象
- 用Fiddler模拟低速网络环境(弱网)