/// <summary>
/// 获取远程html
/// </summary>
/// <param name="url"></param>
/// <param name="methed"></param>
/// <param name="param"></param>
/// <param name="html"></param>
/// <returns></returns>
public static bool GetHttp(string url, string methed, string param, out string html)
{
methed = methed.ToLower(); if (param != null && methed == "get" && param.Length > 0)
{
url += "?" + param;
} try
{
MSXML2.XMLHTTP mx = new MSXML2.XMLHTTPClass(); mx.open(methed, url, false, null, null); if (param != null && methed == "post" && param.Length > 0)
{
mx.setRequestHeader("Content-Length", param.Length.ToString());
mx.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
} mx.send(param); if (mx.readyState != 4)
{
html = "远程连接失败:-4";
return false;
}
html = mx.responseText;
return true;
}
catch (Exception ex)
{
html = "远程连接失败:"+ex.Message;
return false;
}
} public static bool GetHttp1(string url, string methed, string param, string referer, string encode, out string html)
{
//return GetHttp(url,methed,param,out html); //string encode = "utf-8";
//string methed = sendType.ToString(); if (param != null && methed == "get" && param.Length > 0)
{
if (url.IndexOf("?") >= 0)
{
url += "&" + param;
}
else
{
url += "?" + param;
}
} try
{
HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(url); webreq.Proxy=null;
webreq.Timeout = 1000 * 6;
webreq.ContentType = "application/x-www-form-urlencoded";
webreq.UserAgent = "User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0"; //webreq.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"; //谷歌的:User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
//火狐的:User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
//标准格式为: 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息 //webreq.AllowAutoRedirect = false; //频繁请求一个网址时,过段时间就会出现“基础连接已经关闭”
//webreq.KeepAlive = false;
//webreq.ProtocolVersion = HttpVersion.Version10; if (referer.Length > 0)
{
webreq.Referer = referer;
} CookieContainer mycookies = new CookieContainer();
webreq.CookieContainer = mycookies; //if (this.cookieList != null)
//{
// webreq.CookieContainer.Add(this.GetCookies(webreq.RequestUri, this.cookieList));
//} webreq.Method = methed; //post 开始
if (param != null && methed == "post")
{
byte[] arrbyte = Encoding.GetEncoding(encode).GetBytes(param);
webreq.ContentLength = arrbyte.Length; Stream newStream = webreq.GetRequestStream();
newStream.Write(arrbyte, 0, arrbyte.Length);
newStream.Close();
}
//post 结束 WebResponse w = webreq.GetResponse(); //返回HTML
using (HttpWebResponse webres = (HttpWebResponse)webreq.GetResponse())
{
using (Stream dataStream = webres.GetResponseStream())
{
using (StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding(encode)))
{
html = reader.ReadToEnd();
//this.cookieList = webreq.CookieContainer.GetCookies(webreq.RequestUri);
webreq.Abort();//可能会解决卡住或阻塞问题
}
}
}
}
catch (Exception ex)
{ html = "出现异常(HttpHelper.GetHTML),远程连接失败:" + ex.Message + " url:" + url;
//System.Windows.Forms.MessageBox.Show(html);
return false;
} return true;
}

  

获取远程html的更多相关文章

  1. 使用JCIFS获取远程共享文件

    package com.jadyer.util;  import java.io.File; import java.io.FileOutputStream; import java.io.IOExc ...

  2. curl获取远程图片存到本地

    $url = 'http://sssss/sss/xu0fLo9waqKSTDO7j0kSO41O5Luq3LB6ozUvY4O7OsXUWNicB49fBs8nGYzoqcwGDARQZHpVuic ...

  3. php 获取远程图片保存到本地

    php 获取远程图片保存到本地 使用两个函数 1.获取远程文件 2.把图片保存到本地 /** * 获取远程图片并把它保存到本地 * $url 是远程图片的完整URL地址,不能为空. */ functi ...

  4. 解析PHP中的file_get_contents获取远程页面乱码的问题【转】

    在工作中,遇到一个问题.我需要将一个网址(该网址是一个json数据的接口,即 打开该网址,在浏览器中显示的是json数据),我使用file_get_contents($url),数据是乱码的. 通过查 ...

  5. php获取远程文件大小

    获取本地文件大小filesize()就可以了,但是如何获取远程文件的大小呢? 这里介绍三个方法来获取远程文件的大小. 方法1:get_headers <?php get_headers($url ...

  6. scp命令获取远程文件

    一.scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响 ...

  7. PHP高效获取远程图片尺寸和大小(转)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  8. php 获取远程图片

    一 function gethttpimage($url){      set_time_limit(0);      if(!empty($url)){        $imgUrl=date('Y ...

  9. C# 之 服务端获取远程资源

    获取指定网页的远程资源可使用 WebClient.WebRequest.HttpWebRequest 三种方式来实现.当然也可使用webBrowse,webBrowse不做介绍. 通过 System. ...

  10. Linux中Curl命令couldn't connect to host解决方案 php操作Curl(http,https)无法获取远程数据解决方案

    本人在做百度账户第三方登录接口,获取百度token,利用php操作curl post方式发送请求token,出现couldn't connect to host错误.经过调试测试,最后终于成功.回头写 ...

随机推荐

  1. python中的编解码小结

    在用python27写文件或者上传文件时遇到这样一个问题:.在网上搜了下说加入以下三行代码可以解决: import sys reload(sys) sys.setdefaultencoding('ut ...

  2. hashmap,ConcurrentHashMap与hashtable的区别

    1.hashmap与hashtable的区别 1.我们从他们的定义就可以看出他们的不同,HashTable基于Dictionary类,而HashMap是基于AbstractMap.Dictionary ...

  3. 20165324 实验二《Java面向对象程序设计》实验报告

    20165324 实验二<Java面向对象程序设计>实验报告 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期: ...

  4. [golang note] 数组切片

    数组 √ golang数组包含的每个数据称为数组元素(element),数组包含的元素个数被称为数组长度(length). √ golang数组的长度在定义后不可更改,并且在声明时可以是一个常量或常量 ...

  5. 元类 metaclass

    metaclass 类由Type创建 对象由创建 MetaClass作用 用来指定当前类由谁来创建(默认type创建). MetaClass 会被继承,如果父类指定了元类,那么子类也是由这个元类创建 ...

  6. CentOS忘记用户名或者密码解决办法

    方法一:如果用户名和密码都忘记了,可以用以下这个方法找回:(和第二种大步骤差不多,需注意3,4步) 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e键 2. 再次用上下键 ...

  7. [C语言](*p)++ 与 *p++ 与 ++*p 拨开一团迷雾

    环境:win7 IDE:DEV-C++ 编译器:GCC 1.先说++i和i++的基础 代码如下: #include <stdio.h> //just change simple void ...

  8. IOS系统推送原理

    IOS推送大致原理如下图 1.Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]): 2. ...

  9. $聊一聊"驼峰"和"下划线"——Python re.sub函数详细用法实例讲解

    日常写代码时候会遇到一些字符串替换的操作,比如把一大堆"驼峰"形式的字符串批量转换成下划线形式."驼峰"形式的变量命名风格在Java中很常见,而下划线形式的变量 ...

  10. windows下Qt5.4.2 for android开发环境配置

    安装包链接: http://yunpan.cn/cFs5tikVA83hK 访问密码 d029   本人所有的软件都安装在D:/Qt   1. 安装 Qt 5.4.2      不在讲述 2, 安装p ...