news 2026/7/14 14:06:37

go http Client net/http

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
go http Client net/http

框架推荐

net/http

go的内置http工具,可以构建client和server。

@Slf4j @Controller @RequestMapping("/rest") public class RestTestController { @GetMapping("/get") @ResponseBody public String get(@RequestBody SSHConnectParam param) throws Exception { log.info(JsonUtil.beanToJson(param)); return JsonUtil.beanToJson(param); } @PostMapping("/post") @ResponseBody public String post(@RequestBody SSHConnectParam param) throws Exception { log.info(JsonUtil.beanToJson(param)); return JsonUtil.beanToJson(param); } } @Data @AllArgsConstructor @NoArgsConstructor public class SSHConnectParam { private String ip; private int port; private String username; private String password; } -- get方法: import ( "io" "io/ioutil" "log" "net/http" "strings" ) // Get 用net http实现一个 可以body json格式的GET方法 func Get(c *http.Client, url string, body io.Reader) (resp *http.Response, err error) { req, err := http.NewRequest("GET", url, body) if err != nil { return nil, err } req.Header.Set("Content-Type", "application/json") return c.Do(req) } func main() { log.Println("main ...") // 简单的get方法 //resp, err := http.Get("http://localhost:8081/rest/get") // 用自定义的GET方法 // requestBody:strings.NewReader 传json resp, err := Get(http.DefaultClient, "http://localhost:8081/rest/get", strings.NewReader("{\"ip\":\"11111111\",\"password\":\"2222\",\"port\":0,\"username\":\"4444\"}")) if err != nil { log.Fatalln("get error", err.Error()) } // 完事关闭response的body defer resp.Body.Close() // 打印header中数据 log.Println("response headers:", resp.Header) log.Println("response status:", resp.StatusCode) // 读取body中的数据 body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatalln("read response body error", err.Error()) } // 打压body,将二进制的body转换为string log.Println(string(body)) log.Println("success ...") } -- POST方法: import ( "io/ioutil" "log" "net/http" "strings" ) func main() { log.Println("main ...") resp, err := http.Post("http://localhost:8081/rest/post", "application/json", strings.NewReader("{\"ip\":\"11111111\",\"password\":\"2222\",\"port\":0,\"username\":\"4444\"}")) if err != nil { log.Fatalln("post error", err.Error()) } log.Println("response headers:", resp.Header) log.Println("response status code:", resp.StatusCode) body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatalln("parse body error", err.Error()) } log.Println("response body:", string(body)) log.Println("success ...") }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 14:06:31

86788

87654

作者头像 李华
网站建设 2026/7/14 14:06:01

闲鱼自动化监控系统:3分钟快速部署,实现24小时智能商品抓取

闲鱼自动化监控系统:3分钟快速部署,实现24小时智能商品抓取 【免费下载链接】idlefish_xianyu_spider-crawler-sender 闲鱼自动抓取/筛选/发送系统,xianyu spider crawler blablabla 项目地址: https://gitcode.com/gh_mirrors/id/idlefish…

作者头像 李华
网站建设 2026/7/14 14:05:41

m4s-converter:如何快速将B站缓存视频转换为通用MP4格式

m4s-converter:如何快速将B站缓存视频转换为通用MP4格式 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 在B站视频下架或网络不佳时&…

作者头像 李华
网站建设 2026/7/14 14:03:17

GitHub访问优化实践:Fast-GitHub浏览器扩展深度解析

GitHub访问优化实践:Fast-GitHub浏览器扩展深度解析 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 作为国内开发者&am…

作者头像 李华