Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
HTTP Okuma-Değerlendirme-Yazdırma Döngüsü (REPL) şöyledir:
- .NET'in desteklendiği her yerde desteklenen basit, platformlar arası bir komut satırı aracı.
- ASP.NET Core web API'lerini (ve ASP.NET Core olmayan web API'lerini) test etmek ve sonuçlarını görüntülemek üzere HTTP isteklerinde bulunmak için kullanılır.
- localhost ve Azure App Service dahil olmak üzere herhangi bir ortamda barındırılan web API'lerini test edebilir.
Aşağıdaki HTTP fiilleri desteklenir:
Birlikte ilerlemek için örnek ASP.NET Core web API'sini görüntüleyin veya indirin (indirme).
Prerequisites
Installation
HttpRepl yüklemek için şu komutu çalıştırın:
dotnet tool install -g Microsoft.dotnet-httprepl
Microsoft.dotnet-httprepl NuGet paketinden bir .NET Genel Aracı yüklenir.
Note
Varsayılan olarak yüklenecek .NET ikili dosyalarının mimarisi şu anda çalışan işletim sistemi mimarisini temsil eder. Farklı bir işletim sistemi mimarisi belirtmek için bkz . dotnet tool install, --arch option. Daha fazla bilgi için bkz. GitHub sorunu dotnet/AspNetCore.Docs #29262.
macOS'ta yolu güncelleştirin:
export PATH="$HOME/.dotnet/tools:$PATH"
Usage
Aracı başarıyla yükledikten sonra aşağıdaki komutu çalıştırarak HttpRepl'i başlatı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, komutun tamamlanmasını sağlar. Sekme tuşuna basmak, yazdığınız karakterleri veya API uç noktasını tamamlayan komutlar listesinde sırayla ilerler. Aşağıdaki bölümlerde, kullanılabilir CLI komutları özetlenmiştir.
Web API’sine bağlanma
Aşağıdaki komutu çalıştırarak bir web API'sine bağlanın:
httprepl <ROOT URI>
<ROOT URI> , web API'sinin temel URI'sidir. Örneğin:
httprepl https://localhost:5001
Alternatif olarak, HttpRepl çalışırken istediğiniz zaman aşağıdaki komutu çalıştırın:
connect <ROOT URI>
Örneğin:
(Disconnected)> connect https://localhost:5001
Web API için OpenAPI açıklamasını elle belirleyin.
Yukarıdaki bağlan komutu OpenAPI açıklamasını otomatik olarak bulmaya çalışır. Herhangi bir nedenle bunu yapamıyorsa, --openapi seçeneğini kullanarak web API'si için OpenAPI açıklamasının URI'sini belirtebilirsiniz:
connect <ROOT URI> --openapi <OPENAPI DESCRIPTION ADDRESS>
Örneğin:
(Disconnected)> connect https://localhost:5001 --openapi /swagger/v1/swagger.json
OpenAPI açıklaması arama, ayrıştırma ve doğrulama ayrıntıları için detaylı çıktıyı etkinleştir
--verbose komutuyla connect seçeneğinin belirtilmesi, araç OpenAPI açıklamasını ararken, ayrıştırdığında ve doğruladığında daha fazla ayrıntı üretir.
connect <ROOT URI> --verbose
Örneğin:
(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 gezinme
Kullanılabilir uç noktaları görüntüleme
Web API’si adresinin geçerli yolundaki farklı uç noktaları (denetleyicileri) 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 gezinirken daha fazla ayrıntı gösterilir. Örneğin, aşağıdaki komutun çıkışı Fruits denetleyicisinin HTTP GET, PUT ve DELETE işlemlerini de desteklediğini gösterir. Bu işlemlerin her biri rotada bir id parametresi bekler:
https://localhost:5001/fruits> ls
. [get|post]
.. []
{id} [get|put|delete]
https://localhost:5001/fruits>
Alternatif olarak, web API'sinin Swagger UI sayfasını tarayıcıda açmak için ui komutunu çalıştırın. Örneğin:
https://localhost:5001/> ui
Uç noktaya gitme
Web API'sinde farklı bir uç noktaya gitmek için cd komutunu çalıştırın:
https://localhost:5001/> cd people
cd komutunu izleyen yol büyük/küçük harfe duyarlı değildir. Aşağıdaki çıkış biçimi görüntülenir:
/people [get|post]
https://localhost:5001/people>
HttpRepl'i özelleştirme
HttpRepl'in varsayılan renkleri özelleştirilebilir. Ayrıca, varsayılan bir metin düzenleyicisi tanımlanabilir. HttpRepl tercihleri geçerli oturumda kalıcı hale getirilir ve gelecekteki oturumlarda kabul edilir. Değiştirildikten sonra tercihler aşağıdaki dosyada depolanır:
.httpreplprefs dosyası başlangıçta yüklenir ve çalışma zamanındaki değişiklikler için izlenmez. Dosyada el ile yapılan değişiklikler yalnızca araç yeniden başlatıldıktan sonra etkinleşir.
Ayarları görüntüleme
Kullanılabilir ayarları görüntülemek için pref get komutunu çalıştırın. Örneğin:
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 ayarlama
Yanıt renklendirmesi şu anda yalnızca JSON için desteklenmektedir. Varsayılan HttpRepl aracı renklendirmesini özelleştirmek için, değiştirilecek renge karşılık gelen anahtarı bulun. Anahtarları bulma yönergeleri için, Ayarları görüntüleme bölümüne bakın. Örneğin, colors.json anahtarı değerini aşağıdaki gibi Green değerinden White olarak değiştirin:
https://localhost:5001/people> pref set colors.json White
Yalnızca izin verilen renkler kullanılabilir. Sonraki HTTP istekleri, çıkışı yeni renklendirmeyle görüntüler.
Belirli renk tuşları ayarlı olmadığında daha genel anahtarlar dikkate alınır. Bu geri dönüş davranışını göstermek için aşağıdaki örneği göz önünde bulundurun:
- Bir
colors.json.namedeğeri yoksacolors.json.stringkullanılır. - Bir
colors.json.stringdeğeri yoksacolors.json.literalkullanılır. - Bir
colors.json.literaldeğeri yoksacolors.jsonkullanılır. - Bir
colors.jsondeğeri yoksa, komut kabuğunun varsayılan metin rengi (AllowedColors.None) kullanılır.
Girinti boyutunu ayarlama
Yanıt girintisi boyutu özelleştirmesi şu anda yalnızca JSON için desteklenmektedir. Varsayılan boyut iki boşluktur. Örneğin:
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Strawberry"
}
]
Varsayılan boyutu değiştirmek için formatting.json.indentSize anahtarını 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ını kabul eder:
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Strawberry"
}
]
Varsayılan metin düzenleyicisini ayarlama
Varsayılan olarak, HttpRepl'de kullanım için yapılandırılmış bir metin düzenleyicisi yoktur. HTTP isteği gövdesi gerektiren web API’si yöntemlerini test etmek için varsayılan bir metin düzenleyicisi ayarlanmalıdır. HttpRepl aracı, yapılandırılmış metin düzenleyicisini yalnızca istek gövdesini oluşturmak amacıyla başlatır. Tercih ettiğiniz metin düzenleyicisini varsayılan olarak ayarlamak için aşağıdaki komutu çalıştırın:
pref set editor.command.default "<EXECUTABLE>"
Önceki komutta, <EXECUTABLE> metin düzenleyicisinin yürütülebilir dosyasının tam yoludur. Örneğin, Visual Studio Code’u varsayılan metin düzenleyicisi olarak ayarlamak için aşağıdaki komutu çalıştırın:
Belirli CLI bağımsız değişkenleriyle varsayılan metin düzenleyicisini başlatmak için editor.command.default.arguments anahtarı ayarlayın. Örneğin, Visual Studio Code’un varsayılan metin düzenleyicisi olduğunu ve HttpRepl'in her zaman Visual Studio Code uzantılarının devre dışı bırakıldığı yeni bir oturumda açmasını istediğinizi varsayalım. Şu komutu çalıştırın:
pref set editor.command.default.arguments "--disable-extensions --new-window"
Tip
Varsayılan düzenleyiciniz Visual Studio Code ise, genellikle Visual Studio Code geri dönmeden önce dosyayı kapatmanızı beklemeye zorlamak için -w veya --wait bağımsız değişkenini geçirmek istersiniz.
OpenAPI Açıklaması arama yollarını ayarlama
Varsayılan olarak, HttpRepl connect seçeneği olmadan --openapi komutunu yürütürken OpenAPI açıklamasını bulmak için kullandığı göreli yollar kümesine sahiptir. Bu göreli yollar, connect komutunda belirtilen kök ve temel yollarla birleştirilir. Varsayılan göreli yollar şunlardır:
swagger.jsonswagger/v1/swagger.json/swagger.json/swagger/v1/swagger.jsonopenapi.json/openapi.json
Ortamınızda farklı bir arama yolu kümesi kullanmak için swagger.searchPaths tercihini ayarlayın. Değer, göreli yolların kanalla ayrılmış bir listesi olmalıdır. Örneğin:
pref set swagger.searchPaths "swagger/v2/swagger.json|swagger/v3/swagger.json"
Varsayılan listeyi tamamen değiştirmek yerine, yollar eklenerek veya kaldırılarak da liste değiştirilebilir.
Varsayılan listeye bir veya daha fazla arama yolu eklemek için swagger.addToSearchPaths tercihini ayarlayın. Değer, göreli yolların kanalla ayrılmış bir listesi olmalıdır. Örneğin:
pref set swagger.addToSearchPaths "openapi/v2/openapi.json|openapi/v3/openapi.json"
Varsayılan listeden bir veya daha fazla arama yolu kaldırmak için swagger.addToSearchPaths tercihini ayarlayın. Değer, göreli yolların kanalla ayrılmış bir listesi olmalıdır. Örneğin:
pref set swagger.removeFromSearchPaths "swagger.json|/swagger.json"
HTTP GET isteklerini test etme
Synopsis
get <PARAMETER> [-F|--no-formatting] [-h|--header] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen yol parametresi.
Options
get komutu için aşağıdaki seçenekler kullanılabilir:
-F|--no-formattingBir bayrak, mevcudiyeti HTTP yanıt biçimlendirmesini engelleyen.
-h|--headerHTTP isteği üstbilgisi ayarlar. Aşağıdaki iki dosya biçimi desteklenir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazılması gereken bir dosya belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgisinin yazılması gereken bir dosya belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingİletişim durumu HTTP yanıtının akışını etkinleştiren bir bayrak.
Example
HTTP GET isteği göndermek için:
getkomutunu, destekleyen bir uç noktada çalıştırın:https://localhost:5001/people> getÖnceki 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>getkomutuna bir parametre geçirerek belirli bir kaydı alın:https://localhost:5001/people> get 2Önceki 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 etme
Synopsis
post <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen yol parametresi.
Options
-F|--no-formattingBir bayrak, mevcudiyeti HTTP yanıt biçimlendirmesini engelleyen.
-h|--headerHTTP isteği üstbilgisi ayarlar. Aşağıdaki iki dosya biçimi desteklenir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazılması gereken bir dosya belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgisinin yazılması gereken bir dosya belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingİletişim durumu HTTP yanıtının akışını etkinleştiren bir bayrak.
-c|--contentSatır içi HTTP isteği gövdesi sağlar. Örneğin,
-c "{\"id\":2,\"name\":\"Cherry\"}".-f|--fileHTTP isteği gövdesini içeren bir dosyanın yolunu sağlar. Örneğin,
-f "C:\request.json".--no-bodyHTTP isteği gövdesinin gerekli olmadığını gösterir.
Example
HTTP POST isteği göndermek için:
postkomutunu, destekleyen bir uç noktada çalıştırın:https://localhost:5001/people> post -h Content-Type=application/jsonYukarıdaki komutta
Content-Type, HTTP isteği üst bilgisi JSON istek gövdesi medya türünü gösterecek şekilde ayarlanmıştır. Varsayılan metin düzenleyicisi, HTTP isteği gövdesini temsil eden bir JSON şablonu içeren bir .tmp dosyası açar. Örneğin:{ "id": 0, "name": "" }Tip
Varsayılan metin düzenleyicisini ayarlamak için Varsayılan metin düzenleyicisini 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üzenleyiciyi kapatın. Komut kabuğunda aşağıdaki çıkış görüntülenir:
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
Synopsis
put <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen yol parametresi.
Options
-F|--no-formattingBir bayrak, mevcudiyeti HTTP yanıt biçimlendirmesini engelleyen.
-h|--headerHTTP isteği üstbilgisi ayarlar. Aşağıdaki iki dosya biçimi desteklenir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazılması gereken bir dosya belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgisinin yazılması gereken bir dosya belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingİletişim durumu HTTP yanıtının akışını etkinleştiren bir bayrak.
-c|--contentSatır içi HTTP isteği gövdesi sağlar. Örneğin,
-c "{\"id\":2,\"name\":\"Cherry\"}".-f|--fileHTTP isteği gövdesini içeren bir dosyanın yolunu sağlar. Örneğin,
-f "C:\request.json".--no-bodyHTTP isteği gövdesinin gerekli olmadığını gösterir.
Example
HTTP PUT isteği göndermek için:
İsteğe bağlı: Değiştirmeden önce verileri görüntülemek için
getkomutunu ç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" } ]putkomutunu, destekleyen bir uç noktada çalıştırın:https://localhost:5001/fruits> put 2 -h Content-Type=application/jsonYukarıdaki komutta
Content-Type, HTTP isteği üst bilgisi JSON istek gövdesi medya türünü gösterecek şekilde ayarlanmıştır. Varsayılan metin düzenleyicisi, HTTP isteği gövdesini temsil eden bir JSON şablonu içeren bir .tmp dosyası açar. Örneğin:{ "id": 0, "name": "" }Tip
Varsayılan metin düzenleyicisini ayarlamak için Varsayılan metin düzenleyicisini 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üzenleyiciyi kapatın. Komut kabuğunda aşağıdaki çıkış görüntülenir:
[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İsteğe bağlı: Değişiklikleri görmek için bir
getkomutu gönderin. Örneğin, metin düzenleyicisinde "Kiraz" yazarsanız, birgetaşağıdaki çıkışı 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 DELETE isteklerini test etme
Synopsis
delete <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen yol parametresi.
Options
-F|--no-formattingBir bayrak, mevcudiyeti HTTP yanıt biçimlendirmesini engelleyen.
-h|--headerHTTP isteği üstbilgisi ayarlar. Aşağıdaki iki dosya biçimi desteklenir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazılması gereken bir dosya belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgisinin yazılması gereken bir dosya belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingİletişim durumu HTTP yanıtının akışını etkinleştiren bir bayrak.
Example
HTTP DELETE isteği göndermek için:
İsteğe bağlı: Değiştirmeden önce verileri görüntülemek için
getkomutunu ç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" } ]deletekomutunu, destekleyen bir uç noktada çalıştırın:https://localhost:5001/fruits> delete 2Önceki 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: Kestrelİsteğe bağlı: Değişiklikleri görmek için bir
getkomutu gönderin. Bu örnekte, birgetaşağıdaki çıkışı 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
Synopsis
patch <PARAMETER> [-c|--content] [-f|--file] [-h|--header] [--no-body] [-F|--no-formatting] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen yol parametresi.
Options
-F|--no-formattingBir bayrak, mevcudiyeti HTTP yanıt biçimlendirmesini engelleyen.
-h|--headerHTTP isteği üstbilgisi ayarlar. Aşağıdaki iki dosya biçimi desteklenir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazılması gereken bir dosya belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgisinin yazılması gereken bir dosya belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingİletişim durumu HTTP yanıtının akışını etkinleştiren bir bayrak.
-c|--contentSatır içi HTTP isteği gövdesi sağlar. Örneğin,
-c "{\"id\":2,\"name\":\"Cherry\"}".-f|--fileHTTP isteği gövdesini içeren bir dosyanın yolunu sağlar. Örneğin,
-f "C:\request.json".--no-bodyHTTP isteği gövdesinin gerekli olmadığını gösterir.
HTTP HEAD isteklerini test etme
Synopsis
head <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen yol parametresi.
Options
-F|--no-formattingBir bayrak, mevcudiyeti HTTP yanıt biçimlendirmesini engelleyen.
-h|--headerHTTP isteği üstbilgisi ayarlar. Aşağıdaki iki dosya biçimi desteklenir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazılması gereken bir dosya belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgisinin yazılması gereken bir dosya belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingİletişim durumu HTTP yanıtının akışını etkinleştiren bir bayrak.
HTTP OPTIONS isteklerini test etme
Synopsis
options <PARAMETER> [-F|--no-formatting] [-h|--header] [--response] [--response:body] [--response:headers] [-s|--streaming]
Arguments
PARAMETER
Varsa, ilişkili denetleyici eylem yöntemi tarafından beklenen yol parametresi.
Options
-F|--no-formattingBir bayrak, mevcudiyeti HTTP yanıt biçimlendirmesini engelleyen.
-h|--headerHTTP isteği üstbilgisi ayarlar. Aşağıdaki iki dosya biçimi desteklenir:
{header}={value}{header}:{value}
--response:bodyHTTP yanıt gövdesinin yazılması gereken bir dosya belirtir. Örneğin,
--response:body "C:\response.json". Dosya yoksa oluşturulur.--response:headersHTTP yanıt üst bilgisinin yazılması gereken bir dosya belirtir. Örneğin,
--response:headers "C:\response.txt". Dosya yoksa oluşturulur.-s|--streamingİletişim durumu HTTP yanıtının akışını etkinleştiren bir bayrak.
HTTP isteği üstbilgisi ayarlama
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. Örneğin:
https://localhost:5001/people> post -h Content-Type=application/jsonYukarıdaki yaklaşımda, her ayrı HTTP isteği üst bilgisi kendi
-hseçeneğini gerektirir.HTTP isteğini göndermeden önce ayarlayın. Örneğin:
https://localhost:5001/people> set header Content-Type application/jsonİstek göndermeden önce üst bilgiyi ayarlarken, üst bilgi komut kabuğu oturumu süresi boyunca ayarlanmış olarak kalır. Üst bilgiyi temizlemek için boş bir değer sağlayın. Örneğin:
https://localhost:5001/people> set header Content-Type
Güvenli uç noktaları test etme
HttpRepl, güvenli uç noktaların testini aşağıdaki yollarla destekler:
- Oturum açmış kullanıcının varsayılan kimlik bilgileri aracılığıyla.
- HTTP isteği üst bilgilerini kullanarak.
Varsayılan kimlik bilgileri
IIS'de barındırılan ve Windows kimlik doğrulaması ile güvenliği sağlanan test ettiğiniz bir web API'sini düşünün. Aracı çalıştıran kullanıcının kimlik bilgilerinin test edilen HTTP uç noktalarına akmasını istiyor olun. Oturum açmış kullanıcının varsayılan kimlik bilgilerini geçmek için:
httpClient.useDefaultCredentialstercihinitrueolarak ayarlayın:pref set httpClient.useDefaultCredentials trueWeb API'sine başka bir istek göndermeden önce araçtan çıkın ve aracı yeniden başlatın.
Varsayılan ara sunucu kimlik bilgileri
Test ettiğiniz web API'sinin Windows kimlik doğrulaması ile güvenli bir ara sunucu arkasında olduğu bir senaryoyu düşünün. Aracı çalıştıran kullanıcının kimlik bilgilerinin ara sunucuya iletilmesini istiyorsunuz. Oturum açmış kullanıcının varsayılan kimlik bilgilerini geçmek için:
httpClient.proxy.useDefaultCredentialstercihinitrueolarak ayarlayın:pref set httpClient.proxy.useDefaultCredentials trueWeb API'sine başka bir istek göndermeden önce araçtan çıkın ve aracı yeniden başlatın.
HTTP isteği üstbilgileri
Desteklenen kimlik doğrulaması ve yetkilendirme düzenlerine örnek olarak şunlar verilebilir:
- temel kimlik doğrulaması
- JWT taşıyıcı belirteçleri
- özet kimlik doğrulaması
Örneğin, aşağıdaki komutu kullanarak uç noktaya taşıyıcı belirteci gönderebilirsiniz:
set header Authorization "bearer <TOKEN VALUE>"
Azure tarafından barındırılan bir uç noktaya erişmek veya Azure REST API'sini kullanmak için taşıyıcı belirteci 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. Azure App Service Web Apps listesi alınır.
Azure'da Oturum Açın:
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ı belirtecinizi alın:
az account get-access-token --query accessTokenHttpRepl aracılığıyla Azure REST API'sine bağlanın:
httprepl https://management.azure.comAuthorizationHTTP isteği üst bilgisini ayarlayın:https://management.azure.com/> set header Authorization "bearer <ACCESS TOKEN>"Aboneliğe gitme:
https://management.azure.com/> cd subscriptions/<SUBSCRIPTION ID>Aboneliğinizin Azure App Service Web Apps listesini alın:
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 açma/kapatma
Varsayılan olarak, gönderilen HTTP isteğinin görüntülenmesi gizlenir. Komut kabuğu oturumu süresi boyunca ilgili ayar değiştirilebilir.
İstek görüntülemeyi etkinleştirme
echo on komutunu çalıştırarak gönderilen HTTP isteğini görüntüleyin. Örneğin:
https://localhost:5001/people> echo on
Request echoing is on
Geçerli oturumdaki sonraki HTTP istekleri, istek üst bilgilerini görüntüler. Örneğin:
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
echo off komutunu çalıştırarak gönderilen HTTP isteğinin görüntülenmesini engelleyin. Örneğin:
https://localhost:5001/people> echo off
Request echoing is off
Bir betik çalıştır
Sık sık aynı HttpRepl komutları kümesini yürütüyorsanız, bunları bir metin dosyasında depolamayı göz önünde bulundurun. Dosyadaki komutlar, komut satırında el ile yürütülen komutlar ile aynı biçimi alır. Komutlar, run komutu kullanılarak toplu olarak yürütülebilir. Örneğin:
Yeni satırla ayrılmış komut kümesini içeren bir metin dosyası oluşturun. Göstermek için, aşağıdaki komutları içeren bir people-script.txt dosyasını göz önünde bulundurun:
set base https://localhost:5001 ls cd People ls get 1runkomutunu yürüterek metin dosyasının yolunu geçirin. Örneğin: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ışı temizle
HttpRepl aracı tarafından komut kabuğuna yazılan tüm çıkışı kaldırmak için clear veya cls komutunu çalıştırın. Örnek olarak, komut kabuğunda aşağıdaki çıktının yer aldığını hayal edin.
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/>
Çıkışı 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/>
Ek kaynaklar
ASP.NET Core