HttpRepl ile Web API 'Lerini test etme
Scott Ade tarafından
HTTP okuma-değerlendirme-yazdırma döngüsü (REPL):
- .NET Core 'un her yerde desteklenen basit, platformlar arası bir komut satırı aracı desteklenir.
- ASP.NET Core web apı 'lerini (ve ASP.NET Core olmayan web apı 'lerini) test etmek ve sonuçlarını görüntülemek için kullanılır.
- Localhost ve Azure App Service dahil olmak üzere herhangi bir ortamda barındırılan Web API 'Lerini test etme özelliğine sahiptir.
Aşağıdaki http fiilleri desteklenir:
takip etmek için, örnek ASP.NET Core web apı 'sini (indirme) görüntüleyin veya indirin.
Önkoşullar
Yükleme
HttpRepl 'yi yüklemek için şu komutu çalıştırın:
dotnet tool install -g Microsoft.dotnet-httprepl
.net Core küresel aracı , Microsoft. dotnet-httprepl NuGet paketinden yüklenir.
Kullanım
Aracın başarıyla yüklenmesinden sonra, HttpRepl 'yi başlatmak için aşağıdaki komutu çalıştırın:
httprepl
Kullanılabilir HttpRepl komutlarını görüntülemek için aşağıdaki komutlardan birini çalıştırın:
httprepl -h
httprepl --help
Aşağıdaki çıktı görüntülenir:
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 komut tamamlama sağlar. Sekme tuşuna basıldığında, yazdığınız KARAKTERLERI veya API uç noktasını tamamlayacak komutların listesi üzerinden yinelenir. Aşağıdaki bölümlerde kullanılabilir CLı komutları ana hatlarıyla verilmiştir.
web apı 'sine Bağlan
aşağıdaki komutu çalıştırarak bir web apı 'sine Bağlan:
httprepl <ROOT URI>
<ROOT URI> , Web API 'sinin temel URI 'sidir. Örnek:
httprepl https://localhost:5001
Alternatif olarak, HttpRepl çalışırken herhangi bir zamanda aşağıdaki komutu çalıştırın:
connect <ROOT URI>
Örnek:
(Disconnected)> connect https://localhost:5001
Web API 'SI için Openapı açıklamasına el ile işaret edin
Yukarıdaki Connect komutu, Openapı açıklamasını otomatik olarak bulmaya çalışacaktır. Bir nedenden dolayı bunu yapamaması durumunda, Web API 'SI için Openapı açıklamasının URI 'sini belirterek --openapi seçeneğini kullanabilirsiniz:
connect <ROOT URI> --openapi <OPENAPI DESCRIPTION ADDRESS>
Örnek:
(Disconnected)> connect https://localhost:5001 --openapi /swagger/v1/swagger.json
Openapı açıklaması arama, ayrıştırma ve doğrulama hakkındaki ayrıntılar için ayrıntılı çıktıyı etkinleştirin
--verboseKomut ile seçeneğinin belirtilmesi, connect araç openapı açıklamasını aradığında, ayrıştırdığında ve doğruladığı zaman daha fazla ayrıntı üretecektir.
connect <ROOT URI> --verbose
Örnek:
(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]
Web API 'sinde gezin
Kullanılabilir uç noktaları görüntüle
Web API adresinin geçerli yolundaki farklı uç noktaları (denetleyiciler) listelemek için, ls veya dir komutunu çalıştırın:
https://localhost:5001/> ls
Aşağıdaki çıkış biçimi görüntülenir:
. []
Fruits [get|post]
People [get|post]
https://localhost:5001/>
Yukarıdaki çıkış, kullanılabilir iki denetleyici olduğunu gösterir: Fruits ve People . Her iki denetleyici de parametresiz HTTP GET ve POST işlemlerini destekler.
Belirli bir denetleyicide gezinmek daha ayrıntılı bilgi gösterir. Örneğin, aşağıdaki komut çıktısı, Fruits denetleyiciyi de http get, put ve DELETE işlemlerini destekler. Bu işlemlerin her biri id , rotada bir parametre bekler:
https://localhost:5001/fruits> ls
. [get|post]
.. []
{id} [get|put|delete]
https://localhost:5001/fruits>
Alternatif olarak, ui Web API 'Sinin Swagger Kullanıcı Arabirimi sayfasını bir tarayıcıda açmak için komutunu çalıştırın. Örnek:
https://localhost:5001/> ui
Bir uç noktaya gitme
Web API 'sindeki farklı bir uç noktaya gitmek için cd komutunu çalıştırın:
https://localhost:5001/> cd people
Komutu izleyen yol cd büyük/küçük harfe duyarlıdır. Aşağıdaki çıkış biçimi görüntülenir:
/people [get|post]
https://localhost:5001/people>
HttpRepl 'yi özelleştirme
HttpRepl 'nin varsayılan renkleri özelleştirilebilir. Ayrıca, varsayılan bir metin Düzenleyicisi tanımlanabilir. HttpRepl tercihleri geçerli oturum genelinde kalıcı hale getirilir ve gelecekteki oturumlarla kabul edilir. Değiştirildikten sonra, Tercihler aşağıdaki dosyada depolanır:
. Httpreplprefs dosyası başlangıçta yüklendi ve çalışma zamanında değişiklikler için izlenmiyor. Dosyada el ile yapılan değişiklikler yalnızca araç yeniden başlatıldıktan sonra devreye girer.
Ayarları görüntüleyin
Kullanılabilir ayarları görüntülemek için pref get komutunu çalıştırın. Örnek:
https://localhost:5001/> pref get
Yukarıdaki komut, kullanılabilir anahtar-değer çiftlerini görüntüler:
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
Renk tercihlerini ayarla
Yanıt renklendirme Şu anda yalnızca JSON için destekleniyor. Varsayılan HttpRepl araç renklendirmesini özelleştirmek için, değiştirilecek renge karşılık gelen anahtarı bulun. Anahtarları bulma hakkında yönergeler için bkz. ayarları görüntüleme bölümü. Örneğin, colors.json anahtar değerini şu şekilde olacak şekilde Green değiştirin White :
https://localhost:5001/people> pref set colors.json White
Yalnızca izin verilen renkler kullanılabilir. Sonraki HTTP istekleri, yeni renklendirmesi ile çıktıyı görüntüler.
Belirli renk anahtarları ayarlanmamışsa, daha genel anahtarlar kabul edilir. Bu geri dönüş davranışını göstermek için aşağıdaki örneği göz önünde bulundurun:
- Eğer
colors.json.namebir değeri yoksa,colors.json.stringkullanılır. - Eğer
colors.json.stringbir değeri yoksa,colors.json.literalkullanılır. - Eğer
colors.json.literalbir değeri yoksa,colors.jsonkullanılır. colors.jsonBir değere sahip değilse, komut kabuğun varsayılan metin rengi (AllowedColors.None) kullanılır.
Girinti boyutunu ayarla
Yanıt girintileme boyut özelleştirmesi Şu anda yalnızca JSON için destekleniyor. Varsayılan boyut iki boşluklardan oluşamaz. Örnek:
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Strawberry"
}
]
Varsayılan boyutu değiştirmek için formatting.json.indentSize anahtarı ayarlayın. Örneğin, her zaman dört boşluk kullanmak için:
pref set formatting.json.indentSize 4
Sonraki yanıtlar dört boşluk ayarına uyar:
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Strawberry"
}
]
Varsayılan metin düzenleyiciyi ayarlama
Varsayılan olarak, HttpRepl 'nin kullanılmak üzere yapılandırılmış metin Düzenleyicisi yok. HTTP istek gövdesi gerektiren Web API yöntemlerini test etmek için varsayılan metin Düzenleyicisi ayarlanmalıdır. HttpRepl Aracı, istek gövdesini oluşturma amacıyla yapılandırılmış metin düzenleyicisini başlatır. Tercih ettiğiniz metin düzenleyiciyi varsayılan olarak ayarlamak için aşağıdaki komutu çalıştırın:
pref set editor.command.default "<EXECUTABLE>"
Yukarıdaki komutta, <EXECUTABLE> Metin düzenleyicisinin yürütülebilir dosyasının tam yoludur. örneğin, Visual Studio Code varsayılan metin düzenleyicisi olarak ayarlamak için aşağıdaki komutu çalıştırın:
Varsayılan metin düzenleyiciyi belirli CLı bağımsız değişkenleriyle başlatmak için editor.command.default.arguments anahtarı ayarlayın. örneğin, Visual Studio Code varsayılan metin düzenleyicisi olduğunu ve her zaman httprepl 'nin, uzantılar devre dışı bırakılmış yeni bir oturumda Visual Studio Code açmasını istediğinizi varsayalım. Şu komutu çalıştırın:
pref set editor.command.default.arguments "--disable-extensions --new-window"
İpucu
varsayılan düzenleyiciniz Visual Studio Code, genellikle -w veya --wait bağımsız değişkeni, döndürmeden önce dosyayı kapatmanızı beklemek için Visual Studio Code zorlamak üzere geçirmek isteyeceksiniz.
Openapı açıklaması arama yollarını ayarlama
Varsayılan olarak, HttpRepl, komutu seçeneği olmadan yürütürken Openapı açıklamasını bulmak için kullandığı bir göreli yollar kümesine sahiptir connect --openapi . Bu göreli yollar, komutta belirtilen kök ve taban yollarla birleştirilir connect . Varsayılan göreli yollar şunlardır:
- Üzerindeswagger.js
- Swagger/v1/swagger.jsaçık
- /swagger.js
- /Swagger/v1/swagger.js
- Üzerindeopenapi.js
- /openapi.js
Ortamınızda farklı bir arama yolları kümesi kullanmak için swagger.searchPaths tercihi ayarlayın. Değer, göreli yolların kanal ile ayrılmış bir listesi olmalıdır. Örnek:
pref set swagger.searchPaths "swagger/v2/swagger.json|swagger/v3/swagger.json"
Varsayılan listeyi tamamen değiştirmek yerine, liste yol ekleyerek veya kaldırarak da değiştirilebilir.
Varsayılan listeye bir veya daha fazla arama yolu eklemek için swagger.addToSearchPaths tercihi ayarlayın. Değer, göreli yolların kanal ile ayrılmış bir listesi olmalıdır. Örnek:
pref set swagger.addToSearchPaths "openapi/v2/openapi.json|openapi/v3/openapi.json"
Varsayılan listeden bir veya daha fazla arama yolunu kaldırmak için swagger.addToSearchPaths tercihi ayarlayın. Değer, göreli yolların kanal ile ayrılmış bir listesi olmalıdır. Örnek:
pref set swagger.removeFromSearchPaths "swagger.json|/swagger.json"
HTTP GET isteklerini test etme
Özeti
get <PARAMETER> [-F|--no-formatting] [-h|--header] [--response:body] [--response:headers] [-s|--streaming]
Bağımsız değişkenler
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen rota parametresi.
Seçenekler
Komutu için aşağıdaki seçenekler kullanılabilir get :
-F|--no-formattingVarlığı HTTP yanıt biçimlendirmesini bastıran bir bayrak.
-h|--headerBir HTTP isteği üst bilgisi ayarlar. Aşağıdaki iki değer biçimi de desteklemektedir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazıldığı bir dosyayı belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgileri yazıldığı bir dosyayı belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingHttp yanıtının akışını sağlayan bir bayrak.
Örnek
HTTP GET isteği vermek için:
getKomutu onu destekleyen bir uç noktada çalıştırın:https://localhost:5001/people> getYukarıdaki komut aşağıdaki çıkış biçimini görüntüler:
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>Komutuna bir parametre geçirerek belirli bir kaydı alın
get:https://localhost:5001/people> get 2Yukarıdaki komut aşağıdaki çıkış biçimini görüntüler:
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 isteklerini test et
Özeti
post <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Bağımsız değişkenler
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen rota parametresi.
Seçenekler
-F|--no-formattingVarlığı HTTP yanıt biçimlendirmesini bastıran bir bayrak.
-h|--headerBir HTTP isteği üst bilgisi ayarlar. Aşağıdaki iki değer biçimi de desteklemektedir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazıldığı bir dosyayı belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgileri yazıldığı bir dosyayı belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingHttp yanıtının akışını sağlayan bir bayrak.
-c|--contentSatır içi HTTP istek gövdesi sağlar. Örneğin,
-c "{"id":2,"name":"Cherry"}".-f|--fileHTTP istek gövdesini içeren bir dosyanın yolunu sağlar. Örneğin,
-f "C:\request.json".--no-bodyHTTP istek gövdesine gerek olmadığını gösterir.
Örnek
HTTP POST isteği vermek için:
postKomutu onu destekleyen bir uç noktada çalıştırın:https://localhost:5001/people> post -h Content-Type=application/jsonÖnceki komutta,
Content-Typehttp istek üst bilgisi, JSON türünde bir istek gövdesi medya türünü gösterecek şekilde ayarlanır. Varsayılan metin Düzenleyicisi, HTTP istek gövdesini temsil eden bir JSON şablonuyla bir . tmp dosyası açar. Örnek:{ "id": 0, "name": "" }İpucu
Varsayılan metin düzenleyicisini ayarlamak için varsayılan metin düzenleyiciyi ayarlama bölümüne bakın.
JSON şablonunu model doğrulama gereksinimlerini karşılayacak şekilde değiştirin:
{ "id": 0, "name": "Scott Addie" }. Tmp dosyasını kaydedin ve metin düzenleyicisini kapatın. Aşağıdaki çıktı komut kabuğu 'nda görünür:
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 isteklerini test etme
Özeti
put <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Bağımsız değişkenler
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen rota parametresi.
Seçenekler
-F|--no-formattingVarlığı HTTP yanıt biçimlendirmesini bastıran bir bayrak.
-h|--headerBir HTTP isteği üst bilgisi ayarlar. Aşağıdaki iki değer biçimi de desteklemektedir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazıldığı bir dosyayı belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgileri yazıldığı bir dosyayı belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingHttp yanıtının akışını sağlayan bir bayrak.
-c|--contentSatır içi HTTP istek gövdesi sağlar. Örneğin,
-c "{"id":2,"name":"Cherry"}".-f|--fileHTTP istek gövdesini içeren bir dosyanın yolunu sağlar. Örneğin,
-f "C:\request.json".--no-bodyHTTP istek gövdesine gerek olmadığını gösterir.
Örnek
HTTP PUT isteği vermek için:
Isteğe bağlı:
getverileri değiştirmeden önce görüntülemek için komutunu çalıştırın: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" } ]putKomutu onu destekleyen bir uç noktada çalıştırın:https://localhost:5001/fruits> put 2 -h Content-Type=application/jsonÖnceki komutta,
Content-Typehttp istek üst bilgisi, JSON türünde bir istek gövdesi medya türünü gösterecek şekilde ayarlanır. Varsayılan metin Düzenleyicisi, HTTP istek gövdesini temsil eden bir JSON şablonuyla bir . tmp dosyası açar. Örnek:{ "id": 0, "name": "" }İpucu
Varsayılan metin düzenleyicisini ayarlamak için varsayılan metin düzenleyiciyi ayarlama bölümüne bakın.
JSON şablonunu model doğrulama gereksinimlerini karşılayacak şekilde değiştirin:
{ "id": 2, "name": "Cherry" }. Tmp dosyasını kaydedin ve metin düzenleyicisini kapatın. Aşağıdaki çıktı komut kabuğu 'nda görünür:
[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: KestrelIsteğe bağlı:
getdeğişiklikleri görmek için bir komut verin. Örneğin, metin düzenleyicisinde "Chraz" yazdıysanız, bir,getaşağıdaki çıktıyı döndürür: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 SILME isteklerini test etme
Özeti
delete <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Bağımsız değişkenler
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen rota parametresi.
Seçenekler
-F|--no-formattingVarlığı HTTP yanıt biçimlendirmesini bastıran bir bayrak.
-h|--headerBir HTTP isteği üst bilgisi ayarlar. Aşağıdaki iki değer biçimi de desteklemektedir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazıldığı bir dosyayı belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgileri yazıldığı bir dosyayı belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingHttp yanıtının akışını sağlayan bir bayrak.
Örnek
HTTP SILME isteği vermek için:
Isteğe bağlı:
getverileri değiştirmeden önce görüntülemek için komutunu çalıştırın: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" } ]deleteKomutu onu destekleyen bir uç noktada çalıştırın:https://localhost:5001/fruits> delete 2Yukarıdaki komut aşağıdaki çıkış biçimini görüntüler:
HTTP/1.1 204 No Content Date: Fri, 28 Jun 2019 17:36:42 GMT Server: KestrelIsteğe bağlı:
getdeğişiklikleri görmek için bir komut verin. Bu örnekte, bir,getaşağıdaki çıktıyı döndürür: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 isteklerini test etme
Özeti
patch <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Bağımsız değişkenler
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen rota parametresi.
Seçenekler
-F|--no-formattingVarlığı HTTP yanıt biçimlendirmesini bastıran bir bayrak.
-h|--headerBir HTTP isteği üst bilgisi ayarlar. Aşağıdaki iki değer biçimi de desteklemektedir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazıldığı bir dosyayı belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgileri yazıldığı bir dosyayı belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingHttp yanıtının akışını sağlayan bir bayrak.
-c|--contentSatır içi HTTP istek gövdesi sağlar. Örneğin,
-c "{"id":2,"name":"Cherry"}".-f|--fileHTTP istek gövdesini içeren bir dosyanın yolunu sağlar. Örneğin,
-f "C:\request.json".--no-bodyHTTP istek gövdesine gerek olmadığını gösterir.
HTTP HEAD isteklerini test etme
Özeti
head <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Bağımsız değişkenler
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen rota parametresi.
Seçenekler
-F|--no-formattingVarlığı HTTP yanıt biçimlendirmesini bastıran bir bayrak.
-h|--headerBir HTTP isteği üst bilgisi ayarlar. Aşağıdaki iki değer biçimi de desteklemektedir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazıldığı bir dosyayı belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgileri yazıldığı bir dosyayı belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingHttp yanıtının akışını sağlayan bir bayrak.
Sınama HTTP SEÇENEKLERI istekleri
Özeti
options <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Bağımsız değişkenler
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen rota parametresi.
Seçenekler
-F|--no-formattingVarlığı HTTP yanıt biçimlendirmesini bastıran bir bayrak.
-h|--headerBir HTTP isteği üst bilgisi ayarlar. Aşağıdaki iki değer biçimi de desteklemektedir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazıldığı bir dosyayı belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgileri yazıldığı bir dosyayı belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingHttp yanıtının akışını sağlayan bir bayrak.
HTTP istek üst bilgilerini ayarla
HTTP isteği üst bilgisi ayarlamak için aşağıdaki yaklaşımlardan birini kullanın:
HTTP isteğiyle satır içi olarak ayarlayın. Örnek:
https://localhost:5001/people> post -h Content-Type=application/jsonYukarıdaki yaklaşımda her ayrı HTTP isteği üst bilgisi kendi seçeneğini
-hgerektirir.HTTP isteğini göndermeden önce ayarlayın. Örnek:
https://localhost:5001/people> set header Content-Type application/jsonBir istek göndermeden önce üst bilgi ayarlanırken, üst bilgi komut kabuğu oturumu süresince ayarlanmış olarak kalır. Üst bilgiyi temizlemek için boş bir değer girin. Örnek:
https://localhost:5001/people> set header Content-Type
Güvenli uç noktaları test etmek
HttpRepl, güvenli uç noktaların test aşağıdaki yollarla test güvence altına alınmıştır:
- Oturum açmış kullanıcının varsayılan kimlik bilgileri aracılığıyla.
- HTTP isteği üst bilgileri aracılığıyla.
Varsayılan kimlik bilgileri
IIS'de barındırılan ve sanal makine kimlik doğrulaması ile güvenliği sağlanacak bir web API'Windows düşünün. Aracı çalıştıran kullanıcının kimlik bilgilerinin test edilen HTTP uç noktalarına akmalarını isteme. Oturum açmış kullanıcının varsayılan kimlik bilgilerini geçmek için:
Tercihi
httpClient.useDefaultCredentialsolaraktrueayarlayın:pref set httpClient.useDefaultCredentials trueWeb API'sini başka bir istek göndermeden önce araçtan çıkın ve aracı yeniden başlatın.
Varsayılan ara sunucu kimlik bilgileri
Test etmekte olduğunu web API'sini güvenli bir ara sunucu ve kimlik doğrulaması ile Windows düşünün. Aracı çalıştıran kullanıcının kimlik bilgilerinin ara sunucuya akmalarını isteme. Oturum açmış kullanıcının varsayılan kimlik bilgilerini geçmek için:
Tercihi
httpClient.proxy.useDefaultCredentialsolaraktrueayarlayın:pref set httpClient.proxy.useDefaultCredentials trueWeb API'sini başka bir istek göndermeden önce araçtan çıkın ve aracı yeniden başlatın.
HTTP isteği üst bilgileri
Desteklenen kimlik doğrulaması ve yetkilendirme şemalarının örnekleri şunlardır:
- temel kimlik doğrulaması
- JWT taşıyıcı belirteçleri
- özet kimlik doğrulaması
Örneğin, aşağıdaki komutu kullanarak bir uç noktasına taşıyıcı belirteç gönderebilirsiniz:
set header Authorization "bearer <TOKEN VALUE>"
Azure'da barındırılan bir uç noktasına erişmek veya Azure REST APIkullanmak için bir taşıyıcı belirtecin gerekir. Azure CLI aracılığıyla Azure aboneliğiniz için taşıyıcı belirteç almak üzere aşağıdaki adımları kullanın. HttpRepl, bir HTTP isteği üst bilgisinde taşıyıcı belirteci ayarlar. Bir Azure App Service Web Apps alınır.
Azure'da oturum açma:
az loginAşağıdaki komutla abonelik kimliğinizi alın:
az account show --query idAbonelik kimliğinizi kopyalayın ve aşağıdaki komutu çalıştırın:
az account set --subscription "<SUBSCRIPTION ID>"Aşağıdaki komutla taşıyıcı belirtecini alın:
az account get-access-token --query accessTokenBağlan HttpRepl aracılığıyla REST API Azure REST API'e erişin:
httprepl https://management.azure.comHTTP isteği
Authorizationüst bilgilerini ayarlayın:https://management.azure.com/> set header Authorization "bearer <ACCESS TOKEN>"Aboneliğe gidin:
https://management.azure.com/> cd subscriptions/<SUBSCRIPTION ID>Aboneliğinizin abonelik listesini Azure App Service Web Apps:
https://management.azure.com/subscriptions/{SUBSCRIPTION ID}> get providers/Microsoft.Web/sites?api-version=2016-08-01Aşağıdaki yanıt görüntülenir:
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 isteği görüntülemeyi değiştir
Varsayılan olarak, gönderilen HTTP isteğinin görüntüsü gizlenr. Komut kabuğu oturumu süresince ilgili ayarı değiştirmek mümkündür.
İstek görüntülemeyi etkinleştirme
komutunu çalıştırarak gönderilen HTTP isteğini echo on görüntüleme. Örnek:
https://localhost:5001/people> echo on
Request echoing is on
Geçerli oturumda sonraki HTTP istekleri istek üst bilgilerini görüntüler. Örnek:
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>
İstek görüntülemeyi devre dışı bırakma
komutu çalıştırarak gönderilen HTTP isteğinin echo off görüntülenmez. Örnek:
https://localhost:5001/people> echo off
Request echoing is off
Betik çalıştırma
Sık sık aynı HttpRepl komutlarını yürütürsanız, bunları bir metin dosyasında depolamayı göz önünde bulundurabilirsiniz. Dosyada yer alan komutlar, komut satırı üzerinde el ile yürütülen komutlar ile aynı forma sahip olur. Komutlar, komutu kullanılarak toplu olarak run yürütülebilirsiniz. Örnek:
Yeni satırla ayrılmış komutlar kümesi içeren bir metin dosyası oluşturun. Göstermek için aşağıdaki komutları people-script.txt bir dosya düşünün:
set base https://localhost:5001 ls cd People ls get 1Komutunu
runyürütün ve metin dosyasının yolunu geçirme. Örnek:https://localhost:5001/> run C:\http-repl-scripts\people-script.txtAşağıdaki çıkış görüntülenir:
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>
Çıkışı temizleme
HttpRepl aracı tarafından komut kabuğuna yazılan tüm çıktıları kaldırmak için veya clear komutunu cls çalıştırın. Göstermek için komut kabuğunun aşağıdaki çıkışı içerdiğini düşünün:
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/>
Çıktıyı temizlemek için aşağıdaki komutu çalıştırın:
https://localhost:5001/> clear
Önceki komutu çalıştırdıktan sonra, komut kabuğu yalnızca aşağıdaki çıkışı içerir:
https://localhost:5001/>