Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De HTTP Read-Eval-Print Loop (REPL) is:
- Een lichtgewicht, platformoverschrijdend opdrachtregelprogramma dat wordt ondersteund in alle omgevingen waar .NET wordt ondersteund.
- Wordt gebruikt voor het maken van HTTP-aanvragen om ASP.NET Core-web-API's (en non-ASP.NET Core-web-API's) te testen en hun resultaten weer te geven.
- Kan web-API's testen die worden gehost in elke omgeving, waaronder localhost en Azure App Service.
De volgende HTTP-woorden worden ondersteund:
Als u deze wilt volgen, bekijkt of downloadt u de voorbeeld-ASP.NET Core-web-API (downloaden).
Prerequisites
Installation
Voer de volgende opdracht uit om de HttpRepl te installeren:
dotnet tool install -g Microsoft.dotnet-httprepl
Er is een .NET Global Tool geïnstalleerd vanuit het NuGet-pakket Microsoft.dotnet-httprepl .
Note
De architectuur van de binaire .NET-bestanden die moeten worden geïnstalleerd, vertegenwoordigt standaard de huidige besturingssysteemarchitectuur. Zie dotnet tool install, --arch optionom een andere besturingssysteemarchitectuur op te geven. Zie GitHub-probleem dotnet/AspNetCore.Docs #29262voor meer informatie.
Werk het pad bij op macOS:
export PATH="$HOME/.dotnet/tools:$PATH"
Usage
Voer na een geslaagde installatie van het hulpprogramma de volgende opdracht uit om de HttpRepl te starten:
httprepl
Voer een van de volgende opdrachten uit om de beschikbare HttpRepl-opdrachten weer te geven:
httprepl -h
httprepl --help
De volgende uitvoer wordt weergegeven:
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.
HttpRepl biedt opdrachtvoltooiing. Als u op de Tab-toets drukt, wordt de lijst met opdrachten doorlopen die de tekens of het API-eindpunt voltooien dat u hebt getypt. In de volgende secties worden de beschikbare CLI-opdrachten beschreven.
Verbinding maken met de web-API
Maak verbinding met een web-API door de volgende opdracht uit te voeren:
httprepl <ROOT URI>
<ROOT URI>
is de basis-URI voor de web-API. For example:
httprepl https://localhost:5001
U kunt ook de volgende opdracht op elk gewenst moment uitvoeren terwijl httpRepl wordt uitgevoerd:
connect <ROOT URI>
For example:
(Disconnected)> connect https://localhost:5001
Wijs handmatig de OpenAPI-beschrijving voor de web-API aan
Met de bovenstaande verbindingsopdracht wordt geprobeerd de OpenAPI-beschrijving automatisch te vinden. Als dit om een of andere reden niet mogelijk is, kunt u de URI van de OpenAPI-beschrijving voor de web-API opgeven met behulp van de --openapi
optie:
connect <ROOT URI> --openapi <OPENAPI DESCRIPTION ADDRESS>
For example:
(Disconnected)> connect https://localhost:5001 --openapi /swagger/v1/swagger.json
Schakel gedetailleerde uitvoer in voor meer informatie over het zoeken, parseren en valideren van OpenAPI-beschrijvingen
Als u de --verbose
optie met de connect
opdracht opgeeft, worden er meer details geproduceerd wanneer het hulpprogramma zoekt naar de OpenAPI-beschrijving, parseert en valideert.
connect <ROOT URI> --verbose
For example:
(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]
Navigeren in de web-API
Beschikbare eindpunten weergeven
Als u de verschillende eindpunten (controllers) wilt weergeven op het huidige pad van het web-API-adres, voert u de ls
of dir
opdracht uit:
https://localhost:5001/> ls
De volgende uitvoerindeling wordt weergegeven:
. []
Fruits [get|post]
People [get|post]
https://localhost:5001/>
De voorgaande uitvoer geeft aan dat er twee controllers beschikbaar zijn: Fruits
en People
. Beide controllers ondersteunen parameterloze HTTP GET- en POST-bewerkingen.
Als u naar een specifieke controller navigeert, ziet u meer details. In de uitvoer van de volgende opdracht ziet u bijvoorbeeld dat de Fruits
controller ook HTTP GET-, PUT- en DELETE-bewerkingen ondersteunt. Elk van deze bewerkingen verwacht een id
parameter in de route:
https://localhost:5001/fruits> ls
. [get|post]
.. []
{id} [get|put|delete]
https://localhost:5001/fruits>
U kunt ook de ui
opdracht uitvoeren om de Swagger UI-pagina van de web-API in een browser te openen. For example:
https://localhost:5001/> ui
Naar een eindpunt navigeren
Als u naar een ander eindpunt in de web-API wilt navigeren, voert u de cd
opdracht uit:
https://localhost:5001/> cd people
Het pad na de cd
opdracht is niet hoofdlettergevoelig. De volgende uitvoerindeling wordt weergegeven:
/people [get|post]
https://localhost:5001/people>
HttpRepl aanpassen
De standaardkleuren van HttpRepl kunnen worden aangepast. Daarnaast kan een standaardteksteditor worden gedefinieerd. De HttpRepl-voorkeuren blijven behouden gedurende de huidige sessie en worden in toekomstige sessies gehonoreerd. Zodra de voorkeuren zijn gewijzigd, worden de voorkeuren opgeslagen in het volgende bestand:
Het .httpreplprefs-bestand wordt tijdens het opstarten geladen en wordt niet gecontroleerd op wijzigingen tijdens runtime. Handmatige wijzigingen in het bestand worden pas van kracht nadat het hulpprogramma opnieuw is opgestart.
De instellingen weergeven
Voer de opdracht pref get
uit om de beschikbare instellingen te bekijken. For example:
https://localhost:5001/> pref get
Met de voorgaande opdracht worden de beschikbare sleutel-waardeparen weergegeven:
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
Kleurvoorkeuren instellen
Antwoordkleuring wordt momenteel alleen ondersteund voor JSON. Als u de standaardkleuring van het httpRepl-hulpprogramma wilt aanpassen, zoekt u de sleutel die overeenkomt met de kleur die moet worden gewijzigd. Zie de sectie Instellingen weergeven voor instructies over het vinden van de sleutels. U kunt bijvoorbeeld de sleutelwaarde van colors.json
wijzigen van Green
naar White
als volgt:
https://localhost:5001/people> pref set colors.json White
Alleen de toegestane kleuren kunnen worden gebruikt. Volgende HTTP-aanvragen geven uitvoer weer met de nieuwe kleuring.
Wanneer specifieke kleurtoetsen niet zijn ingesteld, worden er meer algemene sleutels overwogen. Bekijk het volgende voorbeeld om dit terugvalgedrag te demonstreren:
- Als er geen waarde is voor
colors.json.name
, wordtcolors.json.string
gebruikt. - Als er geen waarde is voor
colors.json.string
, wordtcolors.json.literal
gebruikt. - Als er geen waarde is voor
colors.json.literal
, wordtcolors.json
gebruikt. - Als
colors.json
er geen waarde is, wordt de standaardtekstkleur (AllowedColors.None
) van de opdrachtshell gebruikt.
Grootte van inspringing instellen
Aanpassing van de grootte van antwoord inspringing wordt momenteel alleen ondersteund voor JSON. De standaardgrootte is twee spaties. For example:
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Strawberry"
}
]
Als u de standaardgrootte wilt wijzigen, stelt u de formatting.json.indentSize
sleutel in. Als u bijvoorbeeld altijd vier spaties wilt gebruiken:
pref set formatting.json.indentSize 4
Volgende antwoorden respecteren de instelling van vier spaties:
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Strawberry"
}
]
De standaardteksteditor instellen
De HttpRepl heeft standaard geen teksteditor geconfigureerd voor gebruik. Als u web-API-methoden wilt testen waarvoor een HTTP-aanvraagbody is vereist, moet een standaardteksteditor worden ingesteld. Met het hulpprogramma HttpRepl wordt de geconfigureerde teksteditor gestart voor het opstellen van de hoofdtekst van de aanvraag. Voer de volgende opdracht uit om de gewenste teksteditor in te stellen als de standaardinstelling:
pref set editor.command.default "<EXECUTABLE>"
In de voorgaande opdracht <EXECUTABLE>
is het volledige pad naar het uitvoerbare bestand van de teksteditor. Voer bijvoorbeeld de volgende opdracht uit om Visual Studio Code in te stellen als de standaardteksteditor:
Als u de standaardteksteditor met specifieke CLI-argumenten wilt starten, stelt u de editor.command.default.arguments
sleutel in. Stel dat Visual Studio Code de standaardteksteditor is en dat u visual Studio Code altijd wilt openen in een nieuwe sessie, waarbij extensies zijn uitgeschakeld. Voer de volgende opdracht uit:
pref set editor.command.default.arguments "--disable-extensions --new-window"
Tip
Als uw standaardeditor Visual Studio Code is, wilt u meestal het -w
of --wait
argument doorgeven om Ervoor te zorgen dat Visual Studio Code wacht totdat u het bestand sluit voordat u het retourneert.
Zoekpaden voor OpenAPI-beschrijving instellen
HttpRepl heeft standaard een set relatieve paden die worden gebruikt om de OpenAPI-beschrijving te vinden bij het uitvoeren van de connect
opdracht zonder de --openapi
optie. Deze relatieve paden worden gecombineerd met de hoofd- en basispaden die zijn opgegeven in de connect
opdracht. De standaard relatieve paden zijn:
swagger.json
swagger/v1/swagger.json
/swagger.json
/swagger/v1/swagger.json
openapi.json
/openapi.json
Als u een andere set zoekpaden in uw omgeving wilt gebruiken, stelt u de swagger.searchPaths
voorkeur in. De waarde moet een lijst van relatieve paden zijn, gescheiden door pipe-tekens. For example:
pref set swagger.searchPaths "swagger/v2/swagger.json|swagger/v3/swagger.json"
In plaats van de standaardlijst helemaal te vervangen, kan de lijst ook worden gewijzigd door paden toe te voegen of te verwijderen.
Als u een of meer zoekpaden wilt toevoegen aan de standaardlijst, stelt u de swagger.addToSearchPaths
voorkeur in. De waarde moet een lijst van relatieve paden zijn, gescheiden door pipe-tekens. For example:
pref set swagger.addToSearchPaths "openapi/v2/openapi.json|openapi/v3/openapi.json"
Als u een of meer zoekpaden uit de standaardlijst wilt verwijderen, stelt u de swagger.addToSearchPaths
voorkeur in. De waarde moet een lijst van relatieve paden zijn, gescheiden door pipe-tekens. For example:
pref set swagger.removeFromSearchPaths "swagger.json|/swagger.json"
HTTP GET-aanvragen testen
Synopsis
get <PARAMETER> [-F|--no-formatting] [-h|--header] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
De routeparameter, indien van toepassing, die wordt verwacht door de bijbehorende actiemethode voor de controller.
Options
De volgende opties zijn beschikbaar voor de get
opdracht:
-F|--no-formatting
Een vlag waarvan de aanwezigheid http-antwoordopmaak onderdrukt.
-h|--header
Hiermee stelt u een HTTP-aanvraagheader in. De volgende twee waardenotaties worden ondersteund:
{header}={value}
{header}:{value}
--response:body
Hiermee geeft u een bestand op waarnaar de HOOFDtekst van het HTTP-antwoord moet worden geschreven. Bijvoorbeeld:
--response:body "C:\response.json"
. Het bestand wordt gemaakt als het niet bestaat.--response:headers
Hiermee geeft u een bestand op waarnaar de HTTP-antwoordheaders moeten worden geschreven. Bijvoorbeeld:
--response:headers "C:\response.txt"
. Het bestand wordt gemaakt als het niet bestaat.-s|--streaming
Een vlag waarvan de aanwezigheid het streamen van het HTTP-antwoord mogelijk maakt.
Example
Een HTTP GET-aanvraag uitgeven:
Voer de
get
opdracht uit op een eindpunt dat dit ondersteunt:https://localhost:5001/people> get
Met de voorgaande opdracht wordt de volgende uitvoerindeling weergegeven:
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>
Haal een specifieke record op door een parameter door te geven aan de
get
opdracht:https://localhost:5001/people> get 2
Met de voorgaande opdracht wordt de volgende uitvoerindeling weergegeven:
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>
HTTP POST-aanvragen testen
Synopsis
post <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
De routeparameter, indien van toepassing, die wordt verwacht door de bijbehorende actiemethode voor de controller.
Options
-F|--no-formatting
Een vlag waarvan de aanwezigheid http-antwoordopmaak onderdrukt.
-h|--header
Hiermee stelt u een HTTP-aanvraagheader in. De volgende twee waardenotaties worden ondersteund:
{header}={value}
{header}:{value}
--response:body
Hiermee geeft u een bestand op waarnaar de HOOFDtekst van het HTTP-antwoord moet worden geschreven. Bijvoorbeeld:
--response:body "C:\response.json"
. Het bestand wordt gemaakt als het niet bestaat.--response:headers
Hiermee geeft u een bestand op waarnaar de HTTP-antwoordheaders moeten worden geschreven. Bijvoorbeeld:
--response:headers "C:\response.txt"
. Het bestand wordt gemaakt als het niet bestaat.-s|--streaming
Een vlag waarvan de aanwezigheid het streamen van het HTTP-antwoord mogelijk maakt.
-c|--content
Biedt een inline HTTP-aanvraagbody. Bijvoorbeeld:
-c "{\"id\":2,\"name\":\"Cherry\"}"
.-f|--file
Biedt een pad naar een bestand met de hoofdtekst van de HTTP-aanvraag. Bijvoorbeeld:
-f "C:\request.json"
.--no-body
Geeft aan dat er geen HTTP-aanvraagbody nodig is.
Example
Een HTTP POST-aanvraag uitgeven:
Voer de
post
opdracht uit op een eindpunt dat dit ondersteunt:https://localhost:5001/people> post -h Content-Type=application/json
In de voorgaande opdracht is de HTTP-aanvraagheader ingesteld om aan te geven dat de mediatype van de aanvraaginhoud JSON is. De standaardteksteditor opent een .tmp bestand met een JSON-sjabloon die de hoofdtekst van de HTTP-aanvraag vertegenwoordigt. For example:
{ "id": 0, "name": "" }
Tip
Als u de standaardteksteditor wilt instellen, raadpleegt u de sectie Standaardteksteditor instellen .
Wijzig de JSON-sjabloon om te voldoen aan modelvalidatievereisten:
{ "id": 0, "name": "Scott Addie" }
Sla het .tmp bestand op en sluit de teksteditor. De volgende uitvoer is te zien in het opdrachtscherm.
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>
HTTP PUT-aanvragen testen
Synopsis
put <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
De routeparameter, indien van toepassing, die wordt verwacht door de bijbehorende actiemethode voor de controller.
Options
-F|--no-formatting
Een vlag waarvan de aanwezigheid http-antwoordopmaak onderdrukt.
-h|--header
Hiermee stelt u een HTTP-aanvraagheader in. De volgende twee waardenotaties worden ondersteund:
{header}={value}
{header}:{value}
--response:body
Hiermee geeft u een bestand op waarnaar de HOOFDtekst van het HTTP-antwoord moet worden geschreven. Bijvoorbeeld:
--response:body "C:\response.json"
. Het bestand wordt gemaakt als het niet bestaat.--response:headers
Hiermee geeft u een bestand op waarnaar de HTTP-antwoordheaders moeten worden geschreven. Bijvoorbeeld:
--response:headers "C:\response.txt"
. Het bestand wordt gemaakt als het niet bestaat.-s|--streaming
Een vlag waarvan de aanwezigheid het streamen van het HTTP-antwoord mogelijk maakt.
-c|--content
Biedt een inline HTTP-aanvraagbody. Bijvoorbeeld:
-c "{\"id\":2,\"name\":\"Cherry\"}"
.-f|--file
Biedt een pad naar een bestand met de hoofdtekst van de HTTP-aanvraag. Bijvoorbeeld:
-f "C:\request.json"
.--no-body
Geeft aan dat er geen HTTP-aanvraagbody nodig is.
Example
Een HTTP PUT-aanvraag uitgeven:
Optioneel: voer de
get
opdracht uit om de gegevens weer te geven voordat u deze wijzigt: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" } ]
Voer de
put
opdracht uit op een eindpunt dat dit ondersteunt:https://localhost:5001/fruits> put 2 -h Content-Type=application/json
In de voorgaande opdracht is de HTTP-aanvraagheader ingesteld om aan te geven dat de mediatype van de aanvraaginhoud JSON is. De standaardteksteditor opent een .tmp bestand met een JSON-sjabloon die de hoofdtekst van de HTTP-aanvraag vertegenwoordigt. For example:
{ "id": 0, "name": "" }
Tip
Als u de standaardteksteditor wilt instellen, raadpleegt u de sectie Standaardteksteditor instellen .
Wijzig de JSON-sjabloon om te voldoen aan modelvalidatievereisten:
{ "id": 2, "name": "Cherry" }
Sla het .tmp bestand op en sluit de teksteditor. De volgende uitvoer is te zien in het opdrachtscherm.
[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: Kestrel
Optioneel: geef een
get
opdracht om de wijzigingen te bekijken. Als u bijvoorbeeld "Cherry" in de teksteditor hebt getypt, levertget
de volgende uitvoer op: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>
HTTP DELETE-aanvragen testen
Synopsis
delete <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
De routeparameter, indien van toepassing, die wordt verwacht door de bijbehorende actiemethode voor de controller.
Options
-F|--no-formatting
Een vlag waarvan de aanwezigheid http-antwoordopmaak onderdrukt.
-h|--header
Hiermee stelt u een HTTP-aanvraagheader in. De volgende twee waardenotaties worden ondersteund:
{header}={value}
{header}:{value}
--response:body
Hiermee geeft u een bestand op waarnaar de HOOFDtekst van het HTTP-antwoord moet worden geschreven. Bijvoorbeeld:
--response:body "C:\response.json"
. Het bestand wordt gemaakt als het niet bestaat.--response:headers
Hiermee geeft u een bestand op waarnaar de HTTP-antwoordheaders moeten worden geschreven. Bijvoorbeeld:
--response:headers "C:\response.txt"
. Het bestand wordt gemaakt als het niet bestaat.-s|--streaming
Een vlag waarvan de aanwezigheid het streamen van het HTTP-antwoord mogelijk maakt.
Example
Een HTTP DELETE-aanvraag uitgeven:
Optioneel: voer de
get
opdracht uit om de gegevens weer te geven voordat u deze wijzigt: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" } ]
Voer de
delete
opdracht uit op een eindpunt dat dit ondersteunt:https://localhost:5001/fruits> delete 2
Met de voorgaande opdracht wordt de volgende uitvoerindeling weergegeven:
HTTP/1.1 204 No Content Date: Fri, 28 Jun 2019 17:36:42 GMT Server: Kestrel
Optioneel: geef een
get
opdracht om de wijzigingen te bekijken. In dit voorbeeld geeft eenget
de volgende uitvoer: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>
HTTP PATCH-aanvragen testen
Synopsis
patch <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
De routeparameter, indien van toepassing, die wordt verwacht door de bijbehorende actiemethode voor de controller.
Options
-F|--no-formatting
Een vlag waarvan de aanwezigheid http-antwoordopmaak onderdrukt.
-h|--header
Hiermee stelt u een HTTP-aanvraagheader in. De volgende twee waardenotaties worden ondersteund:
{header}={value}
{header}:{value}
--response:body
Hiermee geeft u een bestand op waarnaar de HOOFDtekst van het HTTP-antwoord moet worden geschreven. Bijvoorbeeld:
--response:body "C:\response.json"
. Het bestand wordt gemaakt als het niet bestaat.--response:headers
Hiermee geeft u een bestand op waarnaar de HTTP-antwoordheaders moeten worden geschreven. Bijvoorbeeld:
--response:headers "C:\response.txt"
. Het bestand wordt gemaakt als het niet bestaat.-s|--streaming
Een vlag waarvan de aanwezigheid het streamen van het HTTP-antwoord mogelijk maakt.
-c|--content
Biedt een inline HTTP-aanvraagbody. Bijvoorbeeld:
-c "{\"id\":2,\"name\":\"Cherry\"}"
.-f|--file
Biedt een pad naar een bestand met de hoofdtekst van de HTTP-aanvraag. Bijvoorbeeld:
-f "C:\request.json"
.--no-body
Geeft aan dat er geen HTTP-aanvraagbody nodig is.
HTTP HEAD-aanvragen testen
Synopsis
head <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
De routeparameter, indien van toepassing, die wordt verwacht door de bijbehorende actiemethode voor de controller.
Options
-F|--no-formatting
Een vlag waarvan de aanwezigheid http-antwoordopmaak onderdrukt.
-h|--header
Hiermee stelt u een HTTP-aanvraagheader in. De volgende twee waardenotaties worden ondersteund:
{header}={value}
{header}:{value}
--response:body
Hiermee geeft u een bestand op waarnaar de HOOFDtekst van het HTTP-antwoord moet worden geschreven. Bijvoorbeeld:
--response:body "C:\response.json"
. Het bestand wordt gemaakt als het niet bestaat.--response:headers
Hiermee geeft u een bestand op waarnaar de HTTP-antwoordheaders moeten worden geschreven. Bijvoorbeeld:
--response:headers "C:\response.txt"
. Het bestand wordt gemaakt als het niet bestaat.-s|--streaming
Een vlag waarvan de aanwezigheid het streamen van het HTTP-antwoord mogelijk maakt.
HTTP OPTIONS-aanvragen testen
Synopsis
options <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
De routeparameter, indien van toepassing, die wordt verwacht door de bijbehorende actiemethode voor de controller.
Options
-F|--no-formatting
Een vlag waarvan de aanwezigheid http-antwoordopmaak onderdrukt.
-h|--header
Hiermee stelt u een HTTP-aanvraagheader in. De volgende twee waardenotaties worden ondersteund:
{header}={value}
{header}:{value}
--response:body
Hiermee geeft u een bestand op waarnaar de HOOFDtekst van het HTTP-antwoord moet worden geschreven. Bijvoorbeeld:
--response:body "C:\response.json"
. Het bestand wordt gemaakt als het niet bestaat.--response:headers
Hiermee geeft u een bestand op waarnaar de HTTP-antwoordheaders moeten worden geschreven. Bijvoorbeeld:
--response:headers "C:\response.txt"
. Het bestand wordt gemaakt als het niet bestaat.-s|--streaming
Een vlag waarvan de aanwezigheid het streamen van het HTTP-antwoord mogelijk maakt.
HTTP-aanvraagheaders instellen
Als u een HTTP-aanvraagheader wilt instellen, gebruikt u een van de volgende methoden:
Stel inline in met de HTTP-aanvraag. For example:
https://localhost:5001/people> post -h Content-Type=application/json
Bij de voorgaande benadering is voor elke afzonderlijke HTTP-aanvraagheader een eigen
-h
optie vereist.Stel deze in voordat de HTTP-aanvraag wordt verzonden. For example:
https://localhost:5001/people> set header Content-Type application/json
Wanneer u de header instelt voordat een aanvraag wordt verzonden, blijft de header ingesteld voor de duur van de opdrachtshellsessie. Als u de koptekst wilt wissen, geeft u een lege waarde op. For example:
https://localhost:5001/people> set header Content-Type
Beveiligde eindpunten testen
HttpRepl ondersteunt het testen van beveiligde eindpunten op de volgende manieren:
- Via de standaardgegevens van de ingelogde gebruiker.
- Via het gebruik van HTTP-aanvraagheaders.
Default credentials
Overweeg een web-API die u test die wordt gehost in IIS en beveiligd met Windows-verificatie. U wilt dat de referenties van de gebruiker die het hulpprogramma uitvoert, naar de HTTP-eindpunten stromen die worden getest. De standaardreferenties van de aangemelde gebruiker doorgeven:
Stel de
httpClient.useDefaultCredentials
voorkeur in optrue
:pref set httpClient.useDefaultCredentials true
Sluit het hulpprogramma af en start het opnieuw voordat u een andere aanvraag naar de web-API verzendt.
Standaardproxy-aanmeldgegevens
Overweeg een scenario waarin de web-API die u test zich achter een proxy bevindt die is beveiligd met Windows-verificatie. U wilt dat de referenties van de gebruiker die het hulpprogramma uitvoert, naar de proxy stromen. De standaardreferenties van de aangemelde gebruiker doorgeven:
Stel de
httpClient.proxy.useDefaultCredentials
voorkeur in optrue
:pref set httpClient.proxy.useDefaultCredentials true
Sluit het hulpprogramma af en start het opnieuw voordat u een andere aanvraag naar de web-API verzendt.
HTTP-aanvraagheaders
Voorbeelden van ondersteunde verificatie- en autorisatieschema's zijn:
- basic authentication
- JWT Bearer-tokens
- digest authentication
U kunt bijvoorbeeld een Bearer-token verzenden naar een eindpunt met de volgende opdracht:
set header Authorization "bearer <TOKEN VALUE>"
Als u toegang wilt krijgen tot een door Azure gehost eindpunt of de Azure-API RESTwilt gebruiken, hebt u een bearer-token nodig. Gebruik de volgende stappen om een Bearer-token voor uw Azure-abonnement te verkrijgen via de Azure CLI. De HttpRepl stelt het bearer-token in een HTTP-aanvraagheader in. Er wordt een lijst met Azure App Service-web-apps opgehaald.
Meld u aan bij Azure:
az login
Haal uw abonnements-id op met de volgende opdracht:
az account show --query id
Kopieer uw abonnements-id en voer de volgende opdracht uit:
az account set --subscription "<SUBSCRIPTION ID>"
Haal uw Bearer-token op met de volgende opdracht:
az account get-access-token --query accessToken
Maak verbinding met de Azure-API REST via httpRepl:
httprepl https://management.azure.com
Stel de
Authorization
HTTP-aanvraagheader in:https://management.azure.com/> set header Authorization "bearer <ACCESS TOKEN>"
Ga naar het abonnement:
https://management.azure.com/> cd subscriptions/<SUBSCRIPTION ID>
Haal een lijst op met de Azure App Service-web-apps van uw abonnement:
https://management.azure.com/subscriptions/{SUBSCRIPTION ID}> get providers/Microsoft.Web/sites?api-version=2016-08-01
Het volgende antwoord wordt weergegeven:
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> ] }
Http-aanvraagweergave in-/uitschakelen
Standaard wordt de weergave van de VERZONDen HTTP-aanvraag onderdrukt. Het is mogelijk om de bijbehorende instelling te wijzigen voor de duur van de commandoshellsessie.
Weergave van aanvraag inschakelen
Bekijk de HTTP-aanvraag die wordt verzonden door de opdracht uit te echo on
voeren. For example:
https://localhost:5001/people> echo on
Request echoing is on
Volgende HTTP-aanvragen in de huidige sessie geven de aanvraagheaders weer. For example:
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>
Weergave van aanvraag uitschakelen
Onderdrukt de weergave van de HTTP-aanvraag die wordt verzonden door de opdracht uit te echo off
voeren. For example:
https://localhost:5001/people> echo off
Request echoing is off
Een script uitvoeren
Als u vaak dezelfde set HttpRepl-opdrachten uitvoert, kunt u overwegen deze op te slaan in een tekstbestand. Opdrachten in het bestand hebben dezelfde vorm als opdrachten die handmatig op de commandoregel worden uitgevoerd. De opdrachten kunnen op batchgewijze wijze worden uitgevoerd met behulp van de run
opdracht. For example:
Maak een tekstbestand met een set door nieuwe regels gescheiden opdrachten. Ter illustratie kunt u een people-script.txt-bestand met de volgende opdrachten overwegen:
set base https://localhost:5001 ls cd People ls get 1
Voer de
run
opdracht uit en geef het pad van het tekstbestand door. For example:https://localhost:5001/> run C:\http-repl-scripts\people-script.txt
De volgende uitvoer wordt weergegeven:
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>
De uitvoer wissen
Als u alle uitvoer wilt verwijderen die naar de opdrachtshell is geschreven door het hulpprogramma HttpRepl, voert u de opdracht of clear
de cls
opdracht uit. Ter illustratie, stelt u zich voor dat de opdrachtshell de volgende uitvoer bevat:
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/>
Voer de volgende opdracht uit om de uitvoer te wissen:
https://localhost:5001/> clear
Nadat u de voorgaande opdracht hebt uitgevoerd, bevat de opdrachtshell alleen de volgende uitvoer:
https://localhost:5001/>