PHP:获取aspx文件的内容

PHP:获取aspx文件的内容,php,file-get-contents,Php,File Get Contents,我有下一个问题。我需要得到几个页面的HTML。使用PHP函数file()或file_get_contents()或CURL时,所有这些都非常有效 但是对于一个URL不起作用!!(当然,我尝试获取非缩短URL的HTML) 我都试过了,没用。我可以在browswer中打开此页面,它返回200状态,但是。。。我拿不到它的内容!当我试图通过CURL获取它时,它返回500 error: Stack Trace: [NullReferenceException: Object reference not

我有下一个问题。我需要得到几个页面的HTML。使用PHP函数file()或file_get_contents()或CURL时,所有这些都非常有效

但是对于一个URL不起作用!!(当然,我尝试获取非缩短URL的HTML)

我都试过了,没用。我可以在browswer中打开此页面,它返回200状态,但是。。。我拿不到它的内容!当我试图通过CURL获取它时,它返回500 error

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
   ASP.ypDetectClass..ctor() +47
   ASP.immigration_immigrating_ainp_application_forms_aspx..ctor() +26
   __ASP.FastObjectFactory_app_web_obqstzij.Create_ASP_immigration_immigrating_ainp_application_forms_aspx() +20
   System.Web.Compilation.BuildResultCompiledType.CreateInstance() +32
   System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +119
   System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +33
   System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +40
   System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +160
   System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +93
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155


Version Information: Microsoft .NET Framework Version:2.0.50727.3623; ASP.NET Version:2.0.50727.3618 " 

我可以使用命令行
curl
检索页面内容。因此,很可能需要在脚本中设置用户代理

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");

我可以使用命令行
curl
检索页面内容。因此,很可能需要在脚本中设置用户代理

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");

您必须在HTTP请求中发送
用户代理
HTTP头

使用cURL,可以设置
CURLOPT_USERAGENT
选项。这项工作:

$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.04 (lucid) Firefox/3.6.18' );
curl_setopt( $ch, CURLOPT_URL, 'http://albertacanada.com/immigration/immigrating/ainp-application-forms.aspx' );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$result = curl_exec ( $ch );
curl_close ( $ch );
echo $result;

选中此复选框,该用户也参与了注释:

您必须在HTTP请求中发送一个
用户代理
HTTP头

使用cURL,可以设置
CURLOPT_USERAGENT
选项。这项工作:

$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.04 (lucid) Firefox/3.6.18' );
curl_setopt( $ch, CURLOPT_URL, 'http://albertacanada.com/immigration/immigrating/ainp-application-forms.aspx' );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$result = curl_exec ( $ch );
curl_close ( $ch );
echo $result;

检查并查看此用户提供的注释:

除非您可以修改托管站点的aspx源代码,否则无法修复此问题。您是否有权获取此页面的HTML?如果是,请向车主寻求帮助。他们很可能故意阻止你的请求。如果没有,我认为我们无法帮助您…如果您使用Linux,您是否尝试使用
wget
获取此页面?如果可以,请在抓取页面时尝试操作您发送的HTTP头。除非您可以修改托管站点的aspx源代码,否则无法修复此问题。您是否有权抓取此页面的HTML?如果是,请向车主寻求帮助。他们很可能故意阻止你的请求。如果没有,我认为我们无法帮助您…如果您使用Linux,您是否尝试使用
wget
获取此页面?如果这样做有效,那么在抓取页面时,尝试操作您发送的HTTP头。