如何从Infinity Free托管的PHP脚本下载字符串?WebClient报JS启用错误
解决Infinity Free托管PHP脚本下载时的JS验证问题
嘿,我之前也踩过Infinity Free免费托管的这个坑!你遇到的这个“需要启用JavaScript”的提示,其实不是你的PHP脚本或者页面的问题,而是Infinity Free默认给免费站点加了Cloudflare的基础防护——哪怕你的页面半行JS都没有,Cloudflare会先拦截那些看起来不像“真实浏览器”发起的请求,比如WebClient这类工具默认发的请求,就会被判定为非浏览器请求,返回那个验证提示。
怎么解决?
核心思路就是让你的请求“伪装”成来自真实浏览器,主要是通过添加正确的请求头:
- 首先要加
User-Agent头,模拟主流浏览器的标识,比如Chrome的UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 - 还可以补充
Accept、Accept-Language这些常见的浏览器请求头,让伪装更逼真
给你个C#的示例,用WebClient的话可以这么改:
using (WebClient client = new WebClient()) { // 添加浏览器请求头 client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"); client.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); client.Headers.Add("Accept-Language", "en-US,en;q=0.5"); try { string result = client.DownloadString("你的PHP脚本URL"); Console.WriteLine(result); } catch (Exception ex) { Console.WriteLine("请求出错:" + ex.Message); } }
如果用HttpClient的话会更灵活,也是同样的逻辑添加请求头就行。
另外要注意:如果之后还是遇到拦截,可能是Cloudflare触发了更严格的验证(比如人机验证),但免费版的Infinity Free站点,只要请求头模拟到位,基本就能绕过这个基础的JS检测了。
内容的提问来源于stack exchange,提问作者OllieG
相关产品推荐
相关产品推荐

