Excel - ошибка после запроса внешних данных с моего сервера - PullRequest
1 голос
/ 06 мая 2020

Я создал простой php пример получения запросов из Excel, но когда я возвращаю данные, Excel сообщает, что невозможно подключиться. Мой ответ сервера представляет собой простой текст html, мой сниффер показывает запрос и ответ.

Sniffer

В Excel go для вкладки «Данные» и выберите опцию From Web, введите URL-адрес моего сервера и нажмите кнопку Ok, теперь Excel запрашивает кредитные данные, после ввода учетных данных и нажатия кнопки подключения, Excel says: Unable to connect, но мой ответ на показ сниффера в порядке.

Excel request credentials

Ответ Excel:

Excel message error

My simple php code:

<?php   

    //Get All headers
    $headers   =   getallheaders();

    //Simple html
    $response  =   file_get_contents('./html.txt'); 

    //Checks if authorization key exists
    if( isset( $headers["Authorization"] ) ) {

        //Encode with gzip
        $content        =   gzencode( trim( preg_replace( '/\s+/', ' ', $response ) ), 9);

        //My user example (Only for test)
        $default_user   =   "my_user";
        $default_pass   =   "my_pass";

        //Get user and password
        list( $user, $pass ) = explode( ':', base64_decode( substr( $headers['Authorization'], 6 ) ) );

        //Check if equals
        if( $user == $default_user && $pass == $default_pass ) {
            //User and Password OK

            //Set content encoding 
            header('Content-Encoding: gzip');

            //Type response and encoding
            header('Content-Type: text/html; charset=utf-8');

            //Content length
            header( 'Content-Length: ' . strlen( $content ) );

            //Show content
            echo $content;

            //Set http status 200 Ok
            http_response_code( 200 );

            return;
        }else {
            //User or pass not equals
            header('HTTP/1.1 401 Unauthorized'); exit();
        }        

    }else {
        //Authorization key is not set
        header('HTTP/1.1 401 Unauthorized'); exit;
    }

Все запрос и обработка на сервере правильные, за исключением возврата, Excel требует чего-то большего, и я не знаю, что это такое.

Есть идеи, как я могу решить эту ошибку?

Спасибо .

...