golang gin 发送get请求代码
时间: 2023-05-27 13:06:00 浏览: 193
以下是使用Gin框架发送GET请求的示例代码:
```go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/hello", func(c *gin.Context) {
resp, err := http.Get("https://api.example.com/hello")
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
defer resp.Body.Close()
c.JSON(http.StatusOK, gin.H{"result": "success"})
})
r.Run(":8080")
}
```
在上面的示例中,我们定义了一个简单的路由,它将接收GET请求并调用`http.Get()`函数来发送GET请求。如果请求成功,我们将返回一个JSON响应表示成功,否则我们将返回一个表示错误的JSON响应。
相关问题
golang gin 发送get请求代码 并且传Query参数
下面是使用golang gin发送get请求并传递Query参数的示例代码:
```go
package main
import (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/hello", func(c *gin.Context) {
name := c.Query("name") // 获取Query参数
if name == "" {
name = "World"
}
resp, err := http.Get(fmt.Sprintf("https://api.example.com/greet?name=%s", name)) // 发送get请求,并传递Query参数
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"message": string(body)})
})
router.Run(":8080")
}
```
在上面的代码中,我们使用了gin框架来创建一个HTTP服务器,然后定义了一个路由处理函数,当客户端发送GET请求到`/hello`路径时,会执行这个处理函数。在处理函数中,我们使用了`c.Query`方法来获取客户端传递的Query参数,然后使用`http.Get`方法来发送get请求,并将Query参数传递给远程API。最后,我们将API返回的响应内容作为JSON格式返回给客户端。
golang gin 发送get请求代码 并且传Query分页数字参数
以下是使用Gin框架发送GET请求并传递Query分页数字参数的代码示例:
```go
package main
import (
"fmt"
"net/http"
"strconv"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/users", func(c *gin.Context) {
page, err := strconv.Atoi(c.Query("page"))
if err != nil {
page = 1 // 默认为第一页
}
limit, err := strconv.Atoi(c.Query("limit"))
if err != nil {
limit = 10 // 默认每页显示10条数据
}
// 计算偏移量
offset := (page - 1) * limit
// TODO: 根据偏移量和每页显示数量查询数据库数据
// 模拟数据
data := make([]map[string]interface{}, limit)
for i := 0; i < limit; i++ {
data[i] = map[string]interface{}{
"id": offset + i + 1,
"name": fmt.Sprintf("user%d", offset+i+1),
}
}
c.JSON(http.StatusOK, gin.H{
"code": "200",
"message": "success",
"data": data,
})
})
r.Run(":8080")
}
```
在上面的示例中,我们使用了Gin框架的`Query()`方法获取了`page`和`limit`参数,并将它们转换为整数类型。然后,我们根据偏移量和每页显示数量查询数据库数据,并返回JSON格式的响应。
你可以使用以下URL测试该API:
```
http://localhost:8080/users?page=2&limit=5
```
该API将返回第2页(每页5条)的模拟数据。