curl capturando el estado de http y sincronizando la solicitud

curl capturando el estado de http y sincronizando la solicitud

Tengo un bucle en el que verifico las URL del archivo una por una y quiero obtener como resultado el encabezado de estado y el tiempo de ejecución de cada solicitud. Tengo dos comandos curl:

Éste genera la comunicación del encabezado (no deseada) yal final el código de estado http y la hora 200 - 0,016

curl -w "%{http_code} - %{time_connect}" -I -s http://superuser.com >> test_result.txt

Éste obtiene la línea con elcódigo de estado http del encabezadoy lo imprime en el archivoHTTP/1.1 200 OK

curl -v -I -s http://superuser.com | findstr /c:"HTTP" >> test_result.txt

¿Cómo puedo combinar estos dos comandos para obtener resultados de una solicitud como esta?

HTTP/1.1 200 OK - 0,016

por lo que se extrae la línea con el encabezado http y se agrega el tiempo de ejecución sin todos los demás encabezados en el archivo.

Respuesta1

Puedes usar un archivo por lotes

@echo off
    setlocal enableextensions disabledelayedexpansion

    rem Just to test - Generate a file with URLs
    > ".\urls.txt" (
        echo http://superuser.com
        echo http://www.google.com
    )

    > ".\testResults.txt" (
        for /f "useback delims=" %%u in (".\urls.txt") do (
            set "statusCode="
            echo([%%u]
            for /f "tokens=1,2 delims=#" %%a in ('
                curl -w "##%%{time_connect}##." -I -s --url "%%~u"
                ^| findstr /l /b /c:"HTTP/" /c:"##"
            ') do if "%%b"=="." (
                setlocal enabledelayedexpansion
                echo(    !statusCode! - %%a
                endlocal
            ) else (
                set "statusCode=%%a"
            )
        )
    )

Sólo dos bucles anidados. El primero itera sobre el archivo de URL y el segundo ejecuta y procesa la salida del curlcomando.

La salida del curlcomando se filtra para findstrrecuperar solo las líneas con el código de estado y el tiempo para conectarse (la cadena de salida -wse ha modificado para ubicar estos datos en la salida)

información relacionada