Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pętla odczyt-ewaluacja-drukowanie (REPL, Read-Eval-Print Loop) to:
- Lekkie, wieloplatformowe narzędzie wiersza polecenia, które jest obsługiwane wszędzie, gdzie jest obsługiwane .NET.
- Służy do wykonywania żądań HTTP w celu testowania internetowych interfejsów API platformy ASP.NET Core (i internetowych interfejsów API spoza platformy ASP.NET Core) oraz wyświetlania ich wyników.
- Zdolny do testowania internetowych interfejsów API hostowanych w dowolnym środowisku, w tym localhost i usługi Azure App Service.
Obsługiwane są następujące czasowniki HTTP:
Aby wykonać poniższe czynności, wyświetl lub pobierz przykładowy internetowy interfejs API platformy ASP.NET Core (jak pobrać).
Prerequisites
Installation
Aby zainstalować narzędzie HttpRepl, uruchom następujące polecenie:
dotnet tool install -g Microsoft.dotnet-httprepl
Narzędzie globalne platformy .NET jest instalowane z pakietu NuGet Microsoft.dotnet-httprepl.
Note
Domyślnie architektura plików binarnych platformy .NET do zainstalowania reprezentuje obecnie uruchomioną architekturę systemu operacyjnego. Aby określić inną architekturę systemu operacyjnego, zobacz dotnet tool install, --arch option(Instalacja narzędzia dotnet). Aby uzyskać więcej informacji, zobacz kwestię na GitHub dotnet/AspNetCore.Docs #29262.
W systemie macOS zaktualizuj ścieżkę:
export PATH="$HOME/.dotnet/tools:$PATH"
Usage
Po pomyślnej instalacji narzędzia uruchom następujące polecenie, aby uruchomić narzędzie HttpRepl:
httprepl
Aby wyświetlić dostępne polecenia narzędzia HttpRepl, uruchom jedno z następujących poleceń:
httprepl -h
httprepl --help
Zostaną wyświetlone następujące dane wyjściowe:
Usage:
httprepl [<BASE_ADDRESS>] [options]
Arguments:
<BASE_ADDRESS> - The initial base address for the REPL.
Options:
-h|--help - Show help information.
Once the REPL starts, these commands are valid:
Setup Commands:
Use these commands to configure the tool for your API server
connect Configures the directory structure and base address of the api server
set header Sets or clears a header for all requests. e.g. `set header content-type application/json`
HTTP Commands:
Use these commands to execute requests against your application.
GET get - Issues a GET request
POST post - Issues a POST request
PUT put - Issues a PUT request
DELETE delete - Issues a DELETE request
PATCH patch - Issues a PATCH request
HEAD head - Issues a HEAD request
OPTIONS options - Issues a OPTIONS request
Navigation Commands:
The REPL allows you to navigate your URL space and focus on specific APIs that you are working on.
ls Show all endpoints for the current path
cd Append the given directory to the currently selected path, or move up a path when using `cd ..`
Shell Commands:
Use these commands to interact with the REPL shell.
clear Removes all text from the shell
echo [on/off] Turns request echoing on or off, show the request that was made when using request commands
exit Exit the shell
REPL Customization Commands:
Use these commands to customize the REPL behavior.
pref [get/set] Allows viewing or changing preferences, e.g. 'pref set editor.command.default 'C:\\Program Files\\Microsoft VS Code\\Code.exe'`
run Runs the script at the given path. A script is a set of commands that can be typed with one command per line
ui Displays the Swagger UI page, if available, in the default browser
Use `help <COMMAND>` for more detail on an individual command. e.g. `help get`.
For detailed tool info, see https://aka.ms/http-repl-doc.
Narzędzie HttpRepl oferuje uzupełnianie poleceń. Naciśnięcie klawisza Tab powoduje przechodzenie przez kolejne polecenia na liście, które uzupełniają wpisane znaki lub końcówkę punktu końcowego API. W poniższych sekcjach opisano dostępne polecenia CLI.
Nawiązywanie połączenia z internetowym interfejsem API
Połącz się z internetowym interfejsem API, uruchamiając następujące polecenie:
httprepl <ROOT URI>
<ROOT URI> to bazowy URI dla internetowego interfejsu API. Przykład:
httprepl https://localhost:5001
Alternatywnie uruchom następujące polecenie w dowolnym momencie, gdy jest uruchomione narzędzie HttpRepl:
connect <ROOT URI>
Przykład:
(Disconnected)> connect https://localhost:5001
Ręczne wskazywanie opisu interfejsu OpenAPI dla internetowego interfejsu API
Powyższe polecenie connect spróbuje automatycznie znaleźć opis interfejsu OpenAPI. Jeśli z jakiegoś powodu nie można tego zrobić, możesz podać identyfikator URI opisu interfejsu OpenAPI dla web API za pomocą opcji --openapi.
connect <ROOT URI> --openapi <OPENAPI DESCRIPTION ADDRESS>
Przykład:
(Disconnected)> connect https://localhost:5001 --openapi /swagger/v1/swagger.json
Włączanie pełnych danych wyjściowych w celu uzyskania szczegółowych informacji na temat wyszukiwania, analizy i walidacji opisu interfejsu OpenAPI
Określenie opcji --verbose w poleceniu connect spowoduje wygenerowanie dodatkowych szczegółów, gdy narzędzie wyszukuje opis interfejsu OpenAPI, analizuje go i waliduje.
connect <ROOT URI> --verbose
Przykład:
(Disconnected)> connect https://localhost:5001 --verbose
Checking https://localhost:5001/swagger.json... 404 NotFound
Checking https://localhost:5001/swagger/v1/swagger.json... 404 NotFound
Checking https://localhost:5001/openapi.json... Found
Parsing... Successful (with warnings)
The field 'info' in 'document' object is REQUIRED [#/info]
The field 'paths' in 'document' object is REQUIRED [#/paths]
Nawigowanie po internetowym interfejsie API
Wyświetlanie dostępnych punktów końcowych
Aby wyświetlić listę różnych punktów końcowych (kontrolerów) w bieżącej ścieżce adresu internetowego interfejsu API, uruchom polecenie ls lub dir:
https://localhost:5001/> ls
Zostanie wyświetlony następujący format wyjściowy:
. []
Fruits [get|post]
People [get|post]
https://localhost:5001/>
Poprzednie dane wyjściowe wskazują, że dostępne są dwa kontrolery: Fruits i People. Oba kontrolery obsługują bezparametrowe operacje HTTP GET i POST.
Przejście do konkretnego kontrolera ujawni więcej szczegółów. Na przykład następujące dane wyjściowe polecenia pokazują, że kontroler Fruits obsługuje również operacje HTTP GET, PUT i DELETE. Każda z tych operacji oczekuje parametru id w trasie:
https://localhost:5001/fruits> ls
. [get|post]
.. []
{id} [get|put|delete]
https://localhost:5001/fruits>
Alternatywnie uruchom polecenie ui, aby otworzyć stronę Swagger UI dla webowego interfejsu API w przeglądarce. Przykład:
https://localhost:5001/> ui
Przejdź do punktu końcowego
Aby przejść do innego punktu końcowego w internetowym interfejsie API, uruchom polecenie cd:
https://localhost:5001/> cd people
Ścieżka, która następuje po poleceniu cd, jest niewrażliwa na wielkość liter. Zostanie wyświetlony następujący format wyjściowy:
/people [get|post]
https://localhost:5001/people>
Dostosuj HttpRepl
Domyślne kolory narzędzia HttpRepl można dostosować. Ponadto można zdefiniować domyślny edytor tekstów. Preferencje narzędzia HttpRepl są zachowywane podczas bieżącej sesji i są respektowane w przyszłych sesjach. Po zmodyfikowaniu preferencje są przechowywane w następującym pliku:
Plik HTTPREPLPREFS jest ładowany podczas uruchamiania i nie jest monitorowany pod kątem zmian w czasie wykonywania. Ręczne modyfikacje pliku zostają uwzględnione dopiero po ponownym uruchomieniu narzędzia.
Wyświetlanie ustawień
Aby wyświetlić dostępne ustawienia, uruchom polecenie pref get. Przykład:
https://localhost:5001/> pref get
Poprzednie polecenie powoduje wyświetlenie dostępnych par klucz-wartość:
colors.json=Green
colors.json.arrayBrace=BoldCyan
colors.json.comma=BoldYellow
colors.json.name=BoldMagenta
colors.json.nameSeparator=BoldWhite
colors.json.objectBrace=Cyan
colors.protocol=BoldGreen
colors.status=BoldYellow
Ustawianie preferencji kolorów
Kolorowanie odpowiedzi jest obecnie obsługiwane tylko w przypadku formatu JSON. Aby dostosować domyślne kolorowanie narzędzia HttpRepl, znajdź klucz odpowiadający kolorowi, który ma zostać zmieniony. Aby uzyskać instrukcje dotyczące znajdowania kluczy, zobacz sekcję Wyświetlanie ustawień. Na przykład zmień wartość klucza colors.json z Green na White w następujący sposób:
https://localhost:5001/people> pref set colors.json White
Mogą być używane tylko dozwolone kolory. W kolejnych żądaniach HTTP dane wyjściowe są wyświetlane z nowym kolorowaniem.
Jeśli określone klucze kolorów nie są ustawione, są uwzględniane bardziej ogólne klucze. Aby zademonstrować to awaryjne zachowanie, rozważmy następujący przykład:
- Jeśli klucz
colors.json.namenie ma wartości, jest używana wartośćcolors.json.string. - Jeśli klucz
colors.json.stringnie ma wartości, jest używana wartośćcolors.json.literal. - Jeśli klucz
colors.json.literalnie ma wartości, jest używana wartośćcolors.json. - Jeśli klucz
colors.jsonnie ma wartości, zostanie użyty domyślny kolor tekstu powłoki poleceń (AllowedColors.None).
Ustawianie rozmiaru wcięcia
Dostosowywanie rozmiaru wcięcia odpowiedzi jest obecnie obsługiwane tylko dla formatu JSON. Domyślny rozmiar to dwie spacje. Przykład:
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Strawberry"
}
]
Aby zmienić domyślny rozmiar, ustaw klucz formatting.json.indentSize. Na przykład, aby zawsze używać czterech spacji:
pref set formatting.json.indentSize 4
Kolejne odpowiedzi uwzględniają formatowanie z użyciem czterech spacji.
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Strawberry"
}
]
Ustawianie domyślnego edytora tekstów
Domyślnie protokół HttpRepl nie ma skonfigurowanego edytora tekstów do używania. Aby przetestować metody internetowego interfejsu API wymagające treści żądania HTTP, należy ustawić domyślny edytor tekstów. Narzędzie HttpRepl uruchamia skonfigurowany edytor tekstów jedynie w celu redagowania treści żądania. Uruchom następujące polecenie, aby ustawić preferowany edytor tekstów jako domyślny:
pref set editor.command.default "<EXECUTABLE>"
W poprzednim poleceniu <EXECUTABLE> to pełna ścieżka do pliku wykonywalnego edytora tekstów. Na przykład uruchom następujące polecenie, aby ustawić program Visual Studio Code jako domyślny edytor tekstów:
Aby uruchomić domyślny edytor tekstów z określonymi argumentami interfejsu wiersza polecenia, ustaw klucz editor.command.default.arguments. Załóżmy na przykład, że program Visual Studio Code jest domyślnym edytorem tekstów i że zawsze chcesz, aby narzędzie HttpRepl otwierało program Visual Studio Code w nowej sesji z wyłączonymi rozszerzeniami. Uruchom następujące polecenie:
pref set editor.command.default.arguments "--disable-extensions --new-window"
Tip
Jeśli domyślnym edytorem jest program Visual Studio Code, zazwyczaj należy przekazać argument -w lub --wait, aby wymusić poczekanie programu Visual Studio Code na zamknięcie pliku przed powróceniem.
Ustaw ścieżki wyszukiwania opisu interfejsu OpenAPI
Domyślnie narzędzie HttpRepl ma zestaw ścieżek względnych używanych do znajdowania opisu interfejsu OpenAPI podczas wykonywania polecenia connect bez opcji --openapi. Te ścieżki względne są łączone ze ścieżkami głównymi i podstawowymi określonymi w poleceniu connect. Domyślne ścieżki względne to:
swagger.jsonswagger/v1/swagger.json/swagger.json/swagger/v1/swagger.jsonopenapi.json/openapi.json
Aby użyć innego zestawu ścieżek wyszukiwania w środowisku, ustaw preferencję swagger.searchPaths. Wartość musi być listą ścieżek względnych oddzielonych znakiem rury. Przykład:
pref set swagger.searchPaths "swagger/v2/swagger.json|swagger/v3/swagger.json"
Zamiast całkowicie zastępować listę domyślną, można również zmodyfikować listę przez dodanie lub usunięcie ścieżek.
Aby dodać co najmniej jedną ścieżkę wyszukiwania do listy domyślnej, ustaw preferencję swagger.addToSearchPaths. Wartość musi być listą ścieżek względnych oddzielonych znakiem rury. Przykład:
pref set swagger.addToSearchPaths "openapi/v2/openapi.json|openapi/v3/openapi.json"
Aby usunąć co najmniej jedną ścieżkę wyszukiwania z listy domyślnej, ustaw preferencję swagger.addToSearchPaths. Wartość musi być listą ścieżek względnych oddzielonych znakiem rury. Przykład:
pref set swagger.removeFromSearchPaths "swagger.json|/swagger.json"
Testowanie żądań HTTP GET
Synopsis
get <PARAMETER> [-F|--no-formatting] [-h|--header] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Parametr trasy, jeśli istnieje, oczekiwany przez skojarzoną metodę akcji kontrolera.
Opcje
Dla polecenia get są dostępne następujące opcje:
-F|--no-formattingFlaga, której obecność pomija formatowanie odpowiedzi HTTP.
-h|--headerUstawia nagłówek żądania HTTP. Obsługiwane są dwa następujące formaty wartości:
{header}={value}{header}:{value}
--response:bodyOkreśla plik, w którym ma być zapisywana treść odpowiedzi HTTP. Na przykład
--response:body "C:\response.json". Plik zostanie utworzony, jeśli nie istnieje.--response:headersOkreśla plik, w którym mają być zapisywane nagłówki odpowiedzi HTTP. Na przykład
--response:headers "C:\response.txt". Plik zostanie utworzony, jeśli nie istnieje.-s|--streamingFlaga, której obecność umożliwia strumieniowanie odpowiedzi HTTP.
Example
Aby wydać żądanie HTTP GET:
Uruchom polecenie
getw punkcie końcowym, który je obsługuje:https://localhost:5001/people> getPoprzednie polecenie powoduje wyświetlenie następującego formatu danych wyjściowych:
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Fri, 21 Jun 2019 03:38:45 GMT Server: Kestrel Transfer-Encoding: chunked [ { "id": 1, "name": "Scott Hunter" }, { "id": 2, "name": "Scott Hanselman" }, { "id": 3, "name": "Scott Guthrie" } ] https://localhost:5001/people>Pobierz określony rekord, przekazując parametr do polecenia
get:https://localhost:5001/people> get 2Poprzednie polecenie powoduje wyświetlenie następującego formatu danych wyjściowych:
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Fri, 21 Jun 2019 06:17:57 GMT Server: Kestrel Transfer-Encoding: chunked [ { "id": 2, "name": "Scott Hanselman" } ] https://localhost:5001/people>
Testowanie żądań HTTP POST
Synopsis
post <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Parametr trasy, jeśli istnieje, oczekiwany przez skojarzoną metodę akcji kontrolera.
Opcje
-F|--no-formattingFlaga, której obecność pomija formatowanie odpowiedzi HTTP.
-h|--headerUstawia nagłówek żądania HTTP. Obsługiwane są dwa następujące formaty wartości:
{header}={value}{header}:{value}
--response:bodyOkreśla plik, w którym ma być zapisywana treść odpowiedzi HTTP. Na przykład
--response:body "C:\response.json". Plik zostanie utworzony, jeśli nie istnieje.--response:headersOkreśla plik, w którym mają być zapisywane nagłówki odpowiedzi HTTP. Na przykład
--response:headers "C:\response.txt". Plik zostanie utworzony, jeśli nie istnieje.-s|--streamingFlaga, której obecność umożliwia strumieniowanie odpowiedzi HTTP.
-c|--contentUdostępnia śródwierszową treść żądania HTTP. Na przykład
-c "{\"id\":2,\"name\":\"Cherry\"}".-f|--fileUdostępnia ścieżkę do pliku zawierającego treść żądania HTTP. Na przykład
-f "C:\request.json".--no-bodyWskazuje, że nie jest wymagana żadna treść żądania HTTP.
Example
Aby wydać żądanie HTTP POST:
Uruchom polecenie
postw punkcie końcowym, który je obsługuje:https://localhost:5001/people> post -h Content-Type=application/jsonW poprzednim poleceniu nagłówek żądania HTTP jest ustawiony tak,
Content-Typeaby wskazywał typ nośnika treści żądania w formacie JSON. Domyślny edytor tekstów otwiera plik .tmp z szablonem JSON reprezentującym treść żądania HTTP. Przykład:{ "id": 0, "name": "" }Tip
Aby ustawić domyślny edytor tekstów, zobacz sekcję Ustawianie domyślnego edytora tekstów.
Zmodyfikuj szablon JSON, aby spełnić wymagania dotyczące walidacji modelu:
{ "id": 0, "name": "Scott Addie" }Zapisz plik TMP i zamknij edytor tekstów. W powłoce poleceń zostaną wyświetlone następujące dane wyjściowe:
HTTP/1.1 201 Created Content-Type: application/json; charset=utf-8 Date: Thu, 27 Jun 2019 21:24:18 GMT Location: https://localhost:5001/people/4 Server: Kestrel Transfer-Encoding: chunked { "id": 4, "name": "Scott Addie" } https://localhost:5001/people>
Testowanie żądań HTTP PUT
Synopsis
put <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Parametr trasy, jeśli istnieje, oczekiwany przez skojarzoną metodę akcji kontrolera.
Opcje
-F|--no-formattingFlaga, której obecność pomija formatowanie odpowiedzi HTTP.
-h|--headerUstawia nagłówek żądania HTTP. Obsługiwane są dwa następujące formaty wartości:
{header}={value}{header}:{value}
--response:bodyOkreśla plik, w którym ma być zapisywana treść odpowiedzi HTTP. Na przykład
--response:body "C:\response.json". Plik zostanie utworzony, jeśli nie istnieje.--response:headersOkreśla plik, w którym mają być zapisywane nagłówki odpowiedzi HTTP. Na przykład
--response:headers "C:\response.txt". Plik zostanie utworzony, jeśli nie istnieje.-s|--streamingFlaga, której obecność umożliwia strumieniowanie odpowiedzi HTTP.
-c|--contentUdostępnia śródwierszową treść żądania HTTP. Na przykład
-c "{\"id\":2,\"name\":\"Cherry\"}".-f|--fileUdostępnia ścieżkę do pliku zawierającego treść żądania HTTP. Na przykład
-f "C:\request.json".--no-bodyWskazuje, że nie jest wymagana żadna treść żądania HTTP.
Example
Aby wydać żądanie HTTP PUT:
Opcjonalnie: uruchom polecenie
get, aby wyświetlić dane przed ich zmodyfikowaniem:https://localhost:5001/fruits> get HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Sat, 22 Jun 2019 00:07:32 GMT Server: Kestrel Transfer-Encoding: chunked [ { "id": 1, "data": "Apple" }, { "id": 2, "data": "Orange" }, { "id": 3, "data": "Strawberry" } ]Uruchom polecenie
putw punkcie końcowym, który je obsługuje:https://localhost:5001/fruits> put 2 -h Content-Type=application/jsonW poprzednim poleceniu nagłówek żądania HTTP jest ustawiony tak,
Content-Typeaby wskazywał typ nośnika treści żądania w formacie JSON. Domyślny edytor tekstów otwiera plik .tmp z szablonem JSON reprezentującym treść żądania HTTP. Przykład:{ "id": 0, "name": "" }Tip
Aby ustawić domyślny edytor tekstów, zobacz sekcję Ustawianie domyślnego edytora tekstów.
Zmodyfikuj szablon JSON, aby spełnić wymagania dotyczące walidacji modelu:
{ "id": 2, "name": "Cherry" }Zapisz plik TMP i zamknij edytor tekstów. W powłoce poleceń zostaną wyświetlone następujące dane wyjściowe:
[main 2019-06-28T17:27:01.805Z] update#setState idle HTTP/1.1 204 No Content Date: Fri, 28 Jun 2019 17:28:21 GMT Server: KestrelOpcjonalnie: wydaj polecenie
get, aby wyświetlić modyfikacje. Jeśli na przykład w edytorze tekstów wpisano „Cherry”, poleceniegetzwróci następujące dane wyjściowe:https://localhost:5001/fruits> get HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Sat, 22 Jun 2019 00:08:20 GMT Server: Kestrel Transfer-Encoding: chunked [ { "id": 1, "data": "Apple" }, { "id": 2, "data": "Cherry" }, { "id": 3, "data": "Strawberry" } ] https://localhost:5001/fruits>
Testowanie żądań HTTP DELETE
Synopsis
delete <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Parametr trasy, jeśli istnieje, oczekiwany przez skojarzoną metodę akcji kontrolera.
Opcje
-F|--no-formattingFlaga, której obecność pomija formatowanie odpowiedzi HTTP.
-h|--headerUstawia nagłówek żądania HTTP. Obsługiwane są dwa następujące formaty wartości:
{header}={value}{header}:{value}
--response:bodyOkreśla plik, w którym ma być zapisywana treść odpowiedzi HTTP. Na przykład
--response:body "C:\response.json". Plik zostanie utworzony, jeśli nie istnieje.--response:headersOkreśla plik, w którym mają być zapisywane nagłówki odpowiedzi HTTP. Na przykład
--response:headers "C:\response.txt". Plik zostanie utworzony, jeśli nie istnieje.-s|--streamingFlaga, której obecność umożliwia strumieniowanie odpowiedzi HTTP.
Example
Aby wydać żądanie HTTP DELETE:
Opcjonalnie: uruchom polecenie
get, aby wyświetlić dane przed ich zmodyfikowaniem:https://localhost:5001/fruits> get HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Sat, 22 Jun 2019 00:07:32 GMT Server: Kestrel Transfer-Encoding: chunked [ { "id": 1, "data": "Apple" }, { "id": 2, "data": "Orange" }, { "id": 3, "data": "Strawberry" } ]Uruchom polecenie
deletew punkcie końcowym, który je obsługuje:https://localhost:5001/fruits> delete 2Poprzednie polecenie powoduje wyświetlenie następującego formatu danych wyjściowych:
HTTP/1.1 204 No Content Date: Fri, 28 Jun 2019 17:36:42 GMT Server: KestrelOpcjonalnie: wydaj polecenie
get, aby wyświetlić modyfikacje. W tym przykładzie poleceniegetzwraca następujące dane wyjściowe:https://localhost:5001/fruits> get HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Sat, 22 Jun 2019 00:16:30 GMT Server: Kestrel Transfer-Encoding: chunked [ { "id": 1, "data": "Apple" }, { "id": 3, "data": "Strawberry" } ] https://localhost:5001/fruits>
Testowanie żądań HTTP PATCH
Synopsis
patch <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Parametr trasy, jeśli istnieje, oczekiwany przez skojarzoną metodę akcji kontrolera.
Opcje
-F|--no-formattingFlaga, której obecność pomija formatowanie odpowiedzi HTTP.
-h|--headerUstawia nagłówek żądania HTTP. Obsługiwane są dwa następujące formaty wartości:
{header}={value}{header}:{value}
--response:bodyOkreśla plik, w którym ma być zapisywana treść odpowiedzi HTTP. Na przykład
--response:body "C:\response.json". Plik zostanie utworzony, jeśli nie istnieje.--response:headersOkreśla plik, w którym mają być zapisywane nagłówki odpowiedzi HTTP. Na przykład
--response:headers "C:\response.txt". Plik zostanie utworzony, jeśli nie istnieje.-s|--streamingFlaga, której obecność umożliwia strumieniowanie odpowiedzi HTTP.
-c|--contentUdostępnia śródwierszową treść żądania HTTP. Na przykład
-c "{\"id\":2,\"name\":\"Cherry\"}".-f|--fileUdostępnia ścieżkę do pliku zawierającego treść żądania HTTP. Na przykład
-f "C:\request.json".--no-bodyWskazuje, że nie jest wymagana żadna treść żądania HTTP.
Testowanie żądań HTTP HEAD
Synopsis
head <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Parametr trasy, jeśli istnieje, oczekiwany przez skojarzoną metodę akcji kontrolera.
Opcje
-F|--no-formattingFlaga, której obecność pomija formatowanie odpowiedzi HTTP.
-h|--headerUstawia nagłówek żądania HTTP. Obsługiwane są dwa następujące formaty wartości:
{header}={value}{header}:{value}
--response:bodyOkreśla plik, w którym ma być zapisywana treść odpowiedzi HTTP. Na przykład
--response:body "C:\response.json". Plik zostanie utworzony, jeśli nie istnieje.--response:headersOkreśla plik, w którym mają być zapisywane nagłówki odpowiedzi HTTP. Na przykład
--response:headers "C:\response.txt". Plik zostanie utworzony, jeśli nie istnieje.-s|--streamingFlaga, której obecność umożliwia strumieniowanie odpowiedzi HTTP.
Testowanie żądań HTTP OPTIONS
Synopsis
options <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Parametr trasy, jeśli istnieje, oczekiwany przez skojarzoną metodę akcji kontrolera.
Opcje
-F|--no-formattingFlaga, której obecność pomija formatowanie odpowiedzi HTTP.
-h|--headerUstawia nagłówek żądania HTTP. Obsługiwane są dwa następujące formaty wartości:
{header}={value}{header}:{value}
--response:bodyOkreśla plik, w którym ma być zapisywana treść odpowiedzi HTTP. Na przykład
--response:body "C:\response.json". Plik zostanie utworzony, jeśli nie istnieje.--response:headersOkreśla plik, w którym mają być zapisywane nagłówki odpowiedzi HTTP. Na przykład
--response:headers "C:\response.txt". Plik zostanie utworzony, jeśli nie istnieje.-s|--streamingFlaga, której obecność umożliwia strumieniowanie odpowiedzi HTTP.
Ustawianie nagłówków żądania HTTP
Aby ustawić nagłówek żądania HTTP, użyj jednej z następujących metod:
Ustaw w ramach żądania HTTP. Przykład:
https://localhost:5001/people> post -h Content-Type=application/jsonW przypadku powyższej metody każdy odrębny nagłówek żądania HTTP wymaga własnej opcji
-h.Ustaw wartość przed wysłaniem żądania HTTP. Przykład:
https://localhost:5001/people> set header Content-Type application/jsonPodczas ustawiania nagłówka przed wysłaniem żądania nagłówek pozostaje ustawiony na czas trwania sesji powłoki poleceń. Aby wyczyścić nagłówek, podaj pustą wartość. Przykład:
https://localhost:5001/people> set header Content-Type
Testowanie zabezpieczonych punktów końcowych
Narzędzie HttpRepl obsługuje testowanie zabezpieczonych punktów końcowych przy użyciu następujących sposobów:
- Za pomocą domyślnych poświadczeń zalogowanego użytkownika.
- Przez użycie nagłówków żądania HTTP.
Poświadczenia domyślne
Rozważ testowany internetowy interfejs API, który jest hostowany w usługach IIS i zabezpieczony przy użyciu uwierzytelniania systemu Windows. Chcesz, aby poświadczenia użytkownika uruchamiającego narzędzie przepływały do testowanych punktów końcowych HTTP. Aby przekazać poświadczenia domyślne zalogowanego użytkownika:
Ustaw preferencję
httpClient.useDefaultCredentialsna wartośćtrue.pref set httpClient.useDefaultCredentials trueZamknij i uruchom ponownie narzędzie przed wysłaniem kolejnego żądania do internetowego interfejsu API.
Domyślne poświadczenia serwera proxy
Rozważmy scenariusz, w którym testowany internetowy interfejs API znajduje się za serwerem proxy zabezpieczonym przez uwierzytelnianie systemu Windows. Chcesz, aby poświadczenia użytkownika uruchamiającego narzędzie przepływały do serwera proxy. Aby przekazać poświadczenia domyślne zalogowanego użytkownika:
Ustaw preferencję
httpClient.proxy.useDefaultCredentialsna wartośćtrue.pref set httpClient.proxy.useDefaultCredentials trueZamknij i uruchom ponownie narzędzie przed wysłaniem kolejnego żądania do internetowego interfejsu API.
Nagłówki żądań HTTP
Przykłady obsługiwanych schematów uwierzytelniania i autoryzacji obejmują:
- uwierzytelnianie podstawowe
- tokeny uwierzytelniające JWT
- uwierzytelnianie szyfrowane
Możesz na przykład wysłać token elementu nośnego do punktu końcowego przy użyciu następującego polecenia:
set header Authorization "bearer <TOKEN VALUE>"
Aby uzyskać dostęp do punktu końcowego hostowanego na platformie Azure lub użyć interfejsu API REST platformy Azure, potrzebujesz tokenu elementu nośnego. Wykonaj poniższe kroki, aby uzyskać token elementu nośnego dla subskrypcji platformy Azure za pośrednictwem interfejsu wiersza polecenia platformy Azure. Narzędzie HttpRepl ustawia token elementu nośnego w nagłówku żądania HTTP. Zostanie pobrana lista usług Azure App Service Web Apps.
Zaloguj się do platformy Azure:
az loginPobierz identyfikator subskrypcji za pomocą następującego polecenia:
az account show --query idSkopiuj identyfikator subskrypcji i uruchom następujące polecenie:
az account set --subscription "<SUBSCRIPTION ID>"Pobierz token elementu nośnego za pomocą następującego polecenia:
az account get-access-token --query accessTokenPołącz się z interfejsem API REST platformy Azure za pośrednictwem narzędzia HttpRepl:
httprepl https://management.azure.comUstaw nagłówek żądania HTTP
Authorization:https://management.azure.com/> set header Authorization "bearer <ACCESS TOKEN>"Przejdź do subskrypcji:
https://management.azure.com/> cd subscriptions/<SUBSCRIPTION ID>Uzyskaj listę aplikacji internetowych usługi Azure App Service w swojej subskrypcji.
https://management.azure.com/subscriptions/{SUBSCRIPTION ID}> get providers/Microsoft.Web/sites?api-version=2016-08-01Zostanie wyświetlona następująca odpowiedź:
HTTP/1.1 200 OK Cache-Control: no-cache Content-Length: 35948 Content-Type: application/json; charset=utf-8 Date: Thu, 19 Sep 2019 23:04:03 GMT Expires: -1 Pragma: no-cache Strict-Transport-Security: max-age=31536000; includeSubDomains X-Content-Type-Options: nosniff x-ms-correlation-request-id: <em>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</em> x-ms-original-request-ids: <em>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</em> x-ms-ratelimit-remaining-subscription-reads: 11999 x-ms-request-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx x-ms-routing-request-id: WESTUS:xxxxxxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx { "value": [ <AZURE RESOURCES LIST> ] }
Przełączanie wyświetlania żądania HTTP
Domyślnie wyświetlanie wysyłanego żądania HTTP jest pomijane. Istnieje możliwość zmiany odpowiedniego ustawienia na czas trwania sesji powłoki poleceń.
Włącz wyświetlanie żądania
Wyświetl wysyłane żądanie HTTP, uruchamiając polecenie echo on. Przykład:
https://localhost:5001/people> echo on
Request echoing is on
Kolejne żądania HTTP w bieżącej sesji wyświetlają nagłówki żądań. Przykład:
https://localhost:5001/people> post
[main 2019-06-28T18:50:11.930Z] update#setState idle
Request to https://localhost:5001...
POST /people HTTP/1.1
Content-Length: 41
Content-Type: application/json
User-Agent: HTTP-REPL
{
"id": 0,
"name": "Scott Addie"
}
Response from https://localhost:5001...
HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
Date: Fri, 28 Jun 2019 18:50:21 GMT
Location: https://localhost:5001/people/4
Server: Kestrel
Transfer-Encoding: chunked
{
"id": 4,
"name": "Scott Addie"
}
https://localhost:5001/people>
Wyłączanie wyświetlania żądania
Pomiń wyświetlanie wysyłanego żądania HTTP, uruchamiając polecenie echo off. Przykład:
https://localhost:5001/people> echo off
Request echoing is off
Uruchamianie skryptu
Jeśli często wykonujesz ten sam zestaw poleceń narzędzia HttpRepl, rozważ zapisanie ich w pliku tekstowym. Polecenia w pliku mają taką samą formę jak polecenia wykonywane ręcznie w wierszu polecenia. Polecenia można wykonywać partiami przy użyciu polecenia run. Przykład:
Utwórz plik tekstowy zawierający zestaw poleceń rozdzielanych nowymi wierszami. Aby to zilustrować, rozważ plik people-script.txt zawierający następujące polecenia:
set base https://localhost:5001 ls cd People ls get 1Wykonaj polecenie
run, przekazując ścieżkę pliku tekstowego. Przykład:https://localhost:5001/> run C:\http-repl-scripts\people-script.txtWyświetlane są następujące dane wyjściowe:
https://localhost:5001/> set base https://localhost:5001 Using OpenAPI description at https://localhost:5001/swagger/v1/swagger.json https://localhost:5001/> ls . [] Fruits [get|post] People [get|post] https://localhost:5001/> cd People /People [get|post] https://localhost:5001/People> ls . [get|post] .. [] {id} [get|put|delete] https://localhost:5001/People> get 1 HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Fri, 12 Jul 2019 19:20:10 GMT Server: Kestrel Transfer-Encoding: chunked { "id": 1, "name": "Scott Hunter" } https://localhost:5001/People>
Czyszczenie danych wyjściowych
Aby usunąć wszystkie dane wyjściowe wygenerowane przez narzędzie HttpRepl w powłoce poleceń, uruchom komendę clear lub cls. Aby to zilustrować, wyobraź sobie, że powłoka poleceń zawiera następujące dane wyjściowe:
httprepl https://localhost:5001
(Disconnected)> set base "https://localhost:5001"
Using OpenAPI description at https://localhost:5001/swagger/v1/swagger.json
https://localhost:5001/> ls
. []
Fruits [get|post]
People [get|post]
https://localhost:5001/>
Uruchom następujące polecenie, aby wyczyścić dane wyjściowe:
https://localhost:5001/> clear
Po uruchomieniu poprzedniego polecenia powłoka poleceń zawiera tylko następujące dane wyjściowe:
https://localhost:5001/>