如何在 Julia 中使用 Genie.jl 收集 HTTP 响应状态
How to collect HTTP response status using Genie.jl in Julia
如何收集脚本的 HTTP 响应状态?
下面是一个示例代码,它将启动服务器并允许两条路由进行交互。
using Genie
import Genie.Router: route
import Genie.Renderer.Json: json
Genie.config.run_as_server = true
route("/try/", method=GET) do
(:message => "Welcome") |> json
end
route("/test/", method=POST) do
data = jsonpayload()
<body>
end
Genie.startup()
如何将200
、500
等响应状态收集为字符串变量?
使用 HTTP
打开与您的服务器的连接并查找状态字段:
julia> using HTTP
julia> response = HTTP.get("http://127.0.0.1:8000/try")
HTTP.Messages.Response:
"""
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Server: Genie/1.18.1/Julia/1.6.1
Transfer-Encoding: chunked
{"message":"Welcome"}"""
julia> response.status
200
如果您想自己控制状态,可以在服务器端添加:
route("/tryerror/", method=GET) do
Genie.Responses.setstatus(503)
end
现在让我们测试一下 503
:
julia> response = HTTP.get("http://127.0.0.1:8000/tryerror")
ERROR: HTTP.ExceptionRequest.StatusError(503, "GET", "/tryerror", HTTP.Messages.Response:
"""
HTTP/1.1 503 Service Unavailable
Content-Type:
Server: Genie/1.18.1/Julia/1.6.1
Transfer-Encoding: chunked
""")
如何收集脚本的 HTTP 响应状态? 下面是一个示例代码,它将启动服务器并允许两条路由进行交互。
using Genie
import Genie.Router: route
import Genie.Renderer.Json: json
Genie.config.run_as_server = true
route("/try/", method=GET) do
(:message => "Welcome") |> json
end
route("/test/", method=POST) do
data = jsonpayload()
<body>
end
Genie.startup()
如何将200
、500
等响应状态收集为字符串变量?
使用 HTTP
打开与您的服务器的连接并查找状态字段:
julia> using HTTP
julia> response = HTTP.get("http://127.0.0.1:8000/try")
HTTP.Messages.Response:
"""
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Server: Genie/1.18.1/Julia/1.6.1
Transfer-Encoding: chunked
{"message":"Welcome"}"""
julia> response.status
200
如果您想自己控制状态,可以在服务器端添加:
route("/tryerror/", method=GET) do
Genie.Responses.setstatus(503)
end
现在让我们测试一下 503
:
julia> response = HTTP.get("http://127.0.0.1:8000/tryerror")
ERROR: HTTP.ExceptionRequest.StatusError(503, "GET", "/tryerror", HTTP.Messages.Response:
"""
HTTP/1.1 503 Service Unavailable
Content-Type:
Server: Genie/1.18.1/Julia/1.6.1
Transfer-Encoding: chunked
""")