400 CURL错误请求

时间:2019-08-29 19:44:27

标签: php http curl vk

今天,我试图在Internet上发布我的网站,结果证明CURL对我不起作用。在本地服务器上一切正常

第一个问题通常与超时不断回到我这一事实有关。我通过代理解决了这个问题,但是遇到了一个新问题,请求量为400

$headers = Array(
    'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'content-type' => 'application/x-www-form-urlencoded',
    'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
);

$get_main_page = post('https://vk.com', Array(
    'headers' => Array(
        'accept: '.$headers['accept'],
        'content-type: '.$headers['content-type'],
        'user-agent: '.$headers['user-agent']
    )
));

function post($url = null, $params = null, $proxy = null, $proxy_userpwd = null) {
    $proxy = '91.77.162.117:8080';
    #$proxyauth = 'login:password';

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

    $fOut = fopen($_SERVER["DOCUMENT_ROOT"].'/'.'curl_out.txt', "w" );
    curl_setopt ($ch, CURLOPT_VERBOSE, 1);
    curl_setopt ($ch, CURLOPT_STDERR, $fOut );

    if(isset($params['params'])) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params['params']);
    }

    if(isset($params['headers'])) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $params['headers']);
    }

    if(isset($params['cookies'])) {
        curl_setopt($ch, CURLOPT_COOKIE, $params['cookies']);
    }

    if($proxy) {
        curl_setopt($ch, CURLOPT_PROXY, $proxy);

        if($proxy_userpwd) {
            curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_userpwd);
        }
    }

    $result = curl_exec($ch); //original 
    #if(!$result = curl_exec($ch)) { //
    #   $result = curl_error($ch); //
    #}
    $result_explode = explode("\r\n\r\n", $result);

    $headers = ((isset($result_explode[0])) ? $result_explode[0]."\r\n" : '').''.((isset($result_explode[1])) ? $result_explode[1] : '');
    $content = $result_explode[count($result_explode) - 1];

    preg_match_all('|Set-Cookie: (.*);|U', $headers, $parse_cookies);

    $cookies = implode(';', $parse_cookies[1]);

    curl_close($ch);

    return Array('headers' => $headers, 'cookies' => $cookies, 'content' => $content);
}

输出:

* About to connect() to proxy 91.77.162.117 port 8080 (#0)
*   Trying 91.77.162.117... * connected
* Connected to 91.77.162.117 (91.77.162.117) port 8080 (#0)
* Establish HTTP proxy tunnel to login.vk.com:443
> CONNECT login.vk.com:443 HTTP/1.1
Host: login.vk.com:443
Proxy-Connection: Keep-Alive
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
content-type: application/x-www-form-urlencoded
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36

< <html>
< <head><title>400 Bad Request</title></head>
< <body bgcolor="white">
< <center><h1>400 Bad Request</h1></center>
< <hr><center>nginx</center>
< </body>
< </html>
* Proxy CONNECT aborted
* Closing connection #0

0 个答案:

没有答案