Curl erfasst den HTTP-Status und zeitliche Abstimmung der Anfrage

Curl erfasst den HTTP-Status und zeitliche Abstimmung der Anfrage

Ich habe eine Schleife, in der ich URLs einzeln aus einer Datei überprüfe und als Ergebnis den Statusheader und die Ausführungszeit jeder Anfrage erhalten möchte. Ich habe zwei Curl-Befehle:

Dieser gibt den Header Kommunikation (nicht erwünscht) aus undam Ende der http Statuscode und die Uhrzeit 200 - 0,016

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

Dieser bekommt die Zeile mit demhttp-Statuscode aus dem Headerund druckt es in die DateiHTTP/1.1 200 OK

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

Wie kann ich diese beiden Befehle kombinieren, um eine Ausgabe aus einer Anfrage zu erhalten, wie diese

HTTP/1.1 200 OK - 0,016

Extrahieren Sie also die Zeile mit dem HTTP-Header und fügen Sie die Ausführungszeit ohne alle anderen Header in der Datei an

Antwort1

Sie können eine Batchdatei verwenden

@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"
            )
        )
    )

Nur zwei verschachtelte Schleifen. Die erste durchläuft die URL-Datei und die zweite führt den curlBefehl aus und verarbeitet dessen Ausgabe.

Die Ausgabe des curlBefehls wird mit gefiltert, findstrum nur die Zeilen mit dem Statuscode und der Verbindungszeit abzurufen (die Ausgabezeichenfolge in -wwurde geändert, um diese Daten in der Ausgabe zu finden).

verwandte Informationen