当前位置: 首页 > news >正文

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 ...") }
http://www.jsqmd.com/news/1187602/

相关文章:

  • 【Ollama GPU加速终极指南】:20年AI基础设施专家亲授——从零配置到10倍推理提速的7个关键步骤
  • Anxun-isoon消息时间分布:图表可视化与工作模式洞察
  • 手机电脑端去水印软件推荐,2026年实测效果最好的三款 - 工具软件使用方法推荐
  • SleeperX:重新定义Mac电源管理的5个关键策略
  • 5分钟快速上手:Figma中文界面插件完全指南
  • 2026杭州工装装修公司榜单|靠谱高性价比推荐 - 资讯速览
  • 嵌入式EEPROM应用与I2C接口实战指南
  • Windows平台Android应用部署架构深度解析:APK Installer技术实现
  • 2026成都高新区江诗丹顿腕表回收市场实测,易奢福深耕行业打造靠谱交易渠道 - ys韩
  • 工业4-20mA电流环设计:XTR116与TM4C129ENCPDT方案
  • Python爬虫制作IP地址查询界面
  • Docker教程小白实操入门(2)--如何配置国内镜像加速器,告别拉取慢
  • UUC\-DI提示注入攻防实战:企业LLM检测脚本与防御配置完整教程
  • 2026深圳奢侈品回收“放心名单”发布!7家持证实体店全公开,闲置大牌变现全程无套路 - 分享测评官
  • 全面解读|3A信用等级证书作用是什么?企业3A信用等级怎么办理? - 叮咚办真方便
  • 6款AI文案提取工具盘点|手机电脑一键提取视频文案教程! - AI工具助手
  • 2026 沈阳黄金回收行情深度解析|不同品类黄金保值、贬值规律全拆解 - 奢侈品回收机构参考
  • 人类刚赢一次,AI一天就反杀!爆火「幽灵字体」被一句话攻破
  • 为什么选择SDXL-Turbo on AMD NPU?AMD NPU加速的5大优势解析
  • 20位高精度DAC11001B:架构、电路设计与应用实战全解析
  • Windows 11 22631版本中Win+X快捷键失效的终极修复指南:ExplorerPatcher兼容性调试实战
  • TDES954寄存器配置实战:自适应均衡、中断与间接访问详解
  • 2026 合肥包河区投资金条回收资讯,本地测评榜首易奢福正规回收 - 奢侈品回收实体店
  • VMware 报错:未能启动 VMware Authorization Service?一步修复教程
  • Pearcleaner:重新定义Mac应用清理的智能解决方案
  • 为什么你的Copilot总“不听话”?揭秘微软未公开的style-prompt权重算法与5种企业级约束注入法
  • AMD Micro-World性能优化:提升AI视频生成速度的7个技巧
  • 7大模块解密:如何用RQAlpha构建专业级量化交易系统
  • Waifu2x-Extension-GUI终极指南:AI图像视频增强的免费完整解决方案
  • 惠州岭南名郡黄金回收透明交易—当面称重当面付款 - 热点速览