账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    用php模拟登陆报400错,是什么原因
    43
    0

    各位达人:我用php爬虫模拟登陆,在不加headers的时候报405错,加上headers报400错,能否指点下解决思路,万分感谢!!
    用的代码如下:

    <?php
        // 要访问的目标页面
        $url = "http://s.weibo.com";
        $urls = "https://s.weibo.com";
    
        // 代理服务器
        define("PROXY_SERVER", "tcp://t.16yun.cn:31111");
    
        // 隧道身份信息
        define("PROXY_USER", "16YUN123");
        define("PROXY_PASS", "123456");
    
        $proxyAuth = base64_encode(PROXY_USER . ":" . PROXY_PASS);
    
        // 设置 Proxy tunnel
        $tunnel = rand(1,10000);
    
        $headers = implode("\r\n", [
            "Proxy-Authorization: Basic {$proxyAuth}",
            "Proxy-Tunnel: ${tunnel}",
        ]);
        $sniServer = parse_url($urls, PHP_URL_HOST);
        $options = [
            "http" => [
                "proxy"  => PROXY_SERVER,
                "header" => $headers,
                "method" => "GET",
                'request_fulluri' => true,
            ],
            'ssl' => array(
                    'SNI_enabled' => true, // Disable SNI for https over http proxies
                    'SNI_server_name' => $sniServer
            )
        ];
        print($url);
        $context = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        var_dump($result);
    
        // 访问 HTTPS 页面
        print($urls);
        $context = stream_context_create($options);
        $result = file_get_contents($urls, false, $context);
        var_dump($result);### 题目描述
    
    

    题目来源及自己的思路

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    你期待的结果是什么?实际看到的错误信息又是什么?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • ◇樱花巷ぴ 普通会员 1楼

      400错误通常表示服务器遇到了一个无法处理的请求。以下是一些可能的原因:

      1. 网络问题:可能是由于你的网络连接不稳定或速度慢,导致服务器无法正确处理请求。

      2. PHP版本问题:可能是你的PHP版本过低,无法处理一些最新的安全攻击或错误。

      3. 服务器配置问题:可能是服务器的配置文件有问题,导致无法正确处理请求。

      4. 服务器错误:可能是服务器出现了故障,例如服务器过载、服务器宕机等。

      5. 防火墙或安全设置:可能是你的防火墙或安全设置阻止了请求,例如防火墙限制了某些IP地址的访问。

      要解决这个问题,你可以检查你的网络连接、PHP版本、服务器配置、服务器错误和防火墙或安全设置。如果你能确定问题的原因,你就可以针对性地解决。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部