<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 響應 ### 發送 string 數據 `Context#String(code int, s string)` 用于發送一個帶有狀態碼的純文本響應。 *示例* ```go func(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") } ``` ### 發送 HTML 響應 (參考模板) `Context#HTML(code int, html string)` 用于發送一個帶有狀態碼的簡單 HTML 響應。如果你需要動態生成 HTML 內容請查看[模版](https://echo.labstack.com/guide/templates)。 *示例* ```go func(c echo.Context) error { return c.HTML(http.StatusOK, "<strong>Hello, World!</strong>") } ``` #### 發送 HTML Blob `Context#HTMLBlob(code int, b []byte)` 用于發送一個帶狀態碼的 HTML blob(二進制長對象)響應。可以發現,使用輸出 `[]byte` 的模版引擎很方便。 ### 模版引擎渲染 [查看](https://echo.labstack.com/guide/templates) ### 發送 JSON 數據 `Context#JSON(code int, i interface{})` 用于發送一個帶狀態碼的 JSON 對象,它會將 Golang 的對象轉換成 JSON 字符串。 *示例* ```go // User type User struct { Name string `json:"name" xml:"name"` Email string `json:"email" xml:"email"` } // Handler func(c echo.Context) error { u := &User{ Name: "Jon", Email: "jon@labstack.com", } return c.JSON(http.StatusOK, u) } ``` #### JSON 流 `Context#JSON()` 內部使用 `json.Marshal` 來轉換 JSON 數據,但該方法面對大量的 JSON 數據會顯得效率不足,對于這種情況可以直接使用 JSON 流。 *示例* ```go func(c echo.Context) error { u := &User{ Name: "Jon", Email: "jon@labstack.com", } c.Response().Header().Set(echo.HeaderContentType, echo.MIMEApplicationJSONCharsetUTF8) c.Response().WriteHeader(http.StatusOK) return json.NewEncoder(c.Response()).Encode(u) } ``` #### JSON 美化 (JSON Pretty) `Context#JSONPretty(code int, i interface{}, indent string)` 可以發送帶有縮進(可以使用空格和 tab)的更為好看的 JSON 數據。 *示例* ```go func(c echo.Context) error { u := &User{ Name: "Jon", Email: "joe@labstack.com", } return c.JSONPretty(http.StatusOK, u, " ") } ``` ```go { "email": "joe@labstack.com", "name": "Jon" } ``` > 通過在請求URL查詢字符串中附加 `pretty` ,你也可以使用 `Context#JSON()` 來輸出帶有縮進的 JSON 數據。 *示例* ```bash curl http://localhost:1323/users/1?pretty ``` #### JSON Blob `Context#JSONBlob(code int, b []byte)` 可用來從外部源(例如數據庫)直接發送預編碼的 JSON 對象。 *示例* ```go func(c echo.Context) error { encodedJSON := []byte{} // Encoded JSON from external source return c.JSONBlob(http.StatusOK, encodedJSON) } ``` ### 發送 JSONP 數據 `Context#JSONP(code int, callback string, i interface{})` 可以將 Golang 的數據類型轉換成 JSON 類型,并通過回調以帶有狀態碼的 JSONNP 結構發送。 [查看示例](https://echo.labstack.com/cookbook/jsonp) ### 發送 XML 數據 `Context#XML(code int, i interface{})` 可以將 Golang 對象轉換成 XML 類型,并帶上狀態碼發送響應。 *示例* ```go func(c echo.Context) error { u := &User{ Name: "Jon", Email: "jon@labstack.com", } return c.XML(http.StatusOK, u) } ``` #### XML 流 `Context#XML` 內部使用 `xml.Marshal` 來轉換 XML 數據,但該方法面對大量的 XML 數據會顯得效率不足,對于這種情況可以直接使用 XML 流。 *示例* ```go func(c echo.Context) error { u := &User{ Name: "Jon", Email: "jon@labstack.com", } c.Response().Header().Set(echo.HeaderContentType, echo.MIMEApplicationXMLCharsetUTF8) c.Response().WriteHeader(http.StatusOK) return xml.NewEncoder(c.Response()).Encode(u) } ``` #### XML 美化 (XML Pretty) `Context#XMLPretty(code int, i interface{}, indent string)` 可以發送帶有縮進(可以使用空格和 tab)的更為好看的 XML 數據。 *示例* ```go func(c echo.Context) error { u := &User{ Name: "Jon", Email: "joe@labstack.com", } return c.XMLPretty(http.StatusOK, u, " ") } ``` ```xml <?xml version="1.0" encoding="UTF-8"?> <User> <Name>Jon</Name> <Email>joe@labstack.com</Email> </User> ``` > 通過在請求URL查詢字符串中附加 `pretty` ,你也可以使用 `Context#XML()` 來輸出帶有縮進的 XML 數據。 *示例* ```bash curl http://localhost:1323/users/1?pretty ``` #### XML Blob `Context#XMLBlob(code int, b []byte)` 可用來從外部源(例如數據庫)直接發送預編碼的 XML 對象。 *示例* ```go func(c echo.Context) error { encodedXML := []byte{} // Encoded XML from external source return c.XMLBlob(http.StatusOK, encodedXML) } ``` ### 發送文件 `Context#File(file string)` 可用來發送內容為文件的響應,并且它能自動設置正確的內容類型、優雅地處理緩存。 *示例* ```go func(c echo.Context) error { return c.File("<文件路徑>") } ``` ### 發送附件 `Context#Attachment(file, name string)` 和發送文件 `File()` 的方法類似,只是它的方法名稱不同。 *示例* ```go func(c echo.Context) error { return c.Attachment("<PATH_TO_YOUR_FILE>") } ``` ### 發送內嵌 (Inline) `Context#Inline(file, name string)` 和發送文件 `File()` 的方法類似,只是它的方法名稱不同。 *示例* ```go func(c echo.Context) error { return c.Inline("<PATH_TO_YOUR_FILE>") } ``` ### 發送二進制長文件 (Blob) ``Context#Blob(code int, contentType string, b []byte)`? 可用于發送帶有內容類型 (content type) 和狀態代碼的任意類型數據。 *示例* ```go func(c echo.Context) (err error) { data := []byte(`0306703,0035866,NO_ACTION,06/19/2006 0086003,"0005866",UPDATED,06/19/2006`) return c.Blob(http.StatusOK, "text/csv", data) } ``` ### 發送流 (Stream) `Context#Stream(code int, contentType string, r io.Reader)` 可用于發送帶有內容類型 (content type) 、狀態代碼、`io.Reader` 的任意類型數據流。 *示例* ```go func(c echo.Context) error { f, err := os.Open("<PATH_TO_IMAGE>") if err != nil { return err } return c.Stream(http.StatusOK, "image/png", f) } ``` ### 發送空內容 (No Content) `Context#NoContent(code int)` 可用于發送帶有狀態碼的空內容。 *示例* ```go func(c echo.Context) error { return c.NoContent(http.StatusOK) } ``` ### 重定向 `Context#Redirect(code int, url string)` 可用于重定向至一個帶有狀態碼的 URL。 *示例* ```go func(c echo.Context) error { return c.Redirect(http.StatusMovedPermanently, "<URL>") } ``` ### Hooks #### 響應之前 `Context#Response#Before(func())` 可以用來注冊在寫入響應之前調用的函數。 #### 響應之后 `Context#Response#After(func())` 可以用來注冊在寫入響應之后調用的函數。但是如果 “Content-Length” 是未知狀態,則不會有任何方法會被執行。 *示例* ```go func(c echo.Context) error { c.Response().Before(func() { println("before response") }) c.Response().After(func() { println("after response") }) return c.NoContent(http.StatusNoContent) } ``` > 可以在響應之前與之后注冊多個方法
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看