golang入门案例之httpclient请求

打败大魔王 打败大魔王     2022-10-10     553

关键词:

发请求,接收接送,并解析

package main

import (
	"fmt"

	"net/http"
	"io/ioutil"
	"net/url"
	"encoding/json"
	"os"

)

type Student struct {
	Name    string
	Age     int
	Guake   bool
	Classes []string
	Price   float32
}

func (s *Student) ShowStu() {
	fmt.Println("show Student :")
	fmt.Println("	Name	:", s.Name)
	fmt.Println("	Age	:", s.Age)
	fmt.Println("	Guake	:", s.Guake)
	fmt.Println("	Price	:", s.Price)
	fmt.Printf("	Classes	: ")
	for _, a := range s.Classes {
		fmt.Printf("%s ", a)
	}
	fmt.Println("")
}

type multitypeTest struct {
	One string `json:"one"`
	Two string `json:"two"`
}
func (s *multitypeTest) Showmul() {
	fmt.Println("show Student :")
	fmt.Println("	Name	:", s.One)
	fmt.Println("	Age	:", s.Two)

}
func IndexHandler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "hello world")
}
func main() {
	//jsonTest()
	httpGet()

}
func httpPostForm() {

	resp, err := http.PostForm("",
		url.Values{"key": {"Value"}, "id": {"123"}})

	if err != nil {
		// handle error
	}

	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		// handle error
	}

	fmt.Println(string(body))

}
func httpGet() {
	resp, err := http.Get("https://X.rong360.com/XXX/XXX")
	CheckError(err)
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	CheckError(err)
	fmt.Println(string(body))
	//f1 := &multitypeTest{
	//	One:"a",
	//	Two:"b",
	//	}
	//f1.Showmul()
	//fjson1, err := json.Marshal(f1)
	//fmt.Println(string(fjson1))
	CheckError(err)
	f2 := &multitypeTest{}
	err = json.Unmarshal([]byte(body), &f2)
	CheckError(err)
	f2.Showmul()

}

func jsonTest() {
	//解析固定结构的json
	st := &Student{
		"Xiao Ming",
		16,
		true,
		[]string{"Math", "English", "Chinese"},
		9.99,
	}
	st1, err := json.Marshal(st)
	fmt.Println(string(st1))
	CheckError(err)
	stb := &Student{}
	err = json.Unmarshal([]byte(st1), &stb)
	stb.ShowStu()
	//
	//b := []byte(`{1:"Wednesday",2:6,3:["Gomez","Morticia"]}`)

	////解析未知结构的json
	//var f interface{}
	//err = json.Unmarshal(b, &f)
	//CheckError(err)
	//这是f里面存储的是一个键值对的map
	//f = map[string]interface{}{
	//	"Name": "Wednesday",
	//	"Age":  6,
	//	"Parents": []interface{}{
	//		"Gomez",
	//		"Morticia",
	//	},
	//}
	//m := f.(map[interface{}]interface{})
	//for k, v := range m {
	//	switch vv := v.(type) {
	//	case string:
	//		fmt.Println(k, "is string", vv)
	//	case int:
	//		fmt.Println(k, "is int", vv)
	//	case float64:
	//		fmt.Println(k, "is float64", vv)
	//	case []interface{}:
	//		fmt.Println(k, "is an array:")
	//		for i, u := range vv {
	//			fmt.Println(i, u)
	//		}
	//	default:
	//		fmt.Println(k, "is of a type I don‘t know how to handle")
	//	}
	//}
}
func CheckError(err error) {
	if err != nil {
		fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
		os.Exit(1)
	}
}

  

 

golang使用httpclient发起get和post请求示例

golang要请求远程网页,可以使用net/http包中的client提供的方法实现。查看了官方网站有一些示例,没有太全面的例子,于是自己整理了一下。get请求get请求可以直接http.Get方法,非常简单。1234567891011121314funchttpGet(){   &n... 查看详情

golang使用httpclient发起get和post请求示例

【转自http://www.01happy.com/golang-http-client-get-and-post/ 】 get请求get请求可以直接http.Get方法,非常简单。1234567891011121314funchttpGet(){    resp,err:=http.Get("http://www.01happy.com 查看详情

window下golang使用grpc入门案例(代码片段)

一、检查golang的安装环境https://golang.org/dl/需要墙,或者在这里下载https://pan.baidu.com/s/12tTmrVIel6sfeBInpt9lQA最新版本1.10下载msi安装即可goversion验证安装 查看详情

go语言入门篇-golang之文本编码处理

Golang之文本编码处理  查看详情

httpclient之入门使用

...应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是ApacheJakartaCommon 查看详情

golang入门到项目实战golang并发编程之runtime包

参考技术Aruntime包里面定义了一些协程管理相关的api让出CPU时间片,重新等待安排任务运行结果退出当前协程运行结果运行结果如果修改最大核心数为1,运行结果如下,不会出现交替执行现象 查看详情

golang入门之struct继承,嵌套

packagemainimport"fmt"typeJocongminstruct{ Namestring Homestring Wantstring}func(j*Jocongmin)SayName()string{//这里定义的方法是拓展方法,是对Jocongmin这个struct的继承,也就是struct多了一个Say..方法,可以通过Jocongmin这个struct实例来调用 retur 查看详情

golang如何体现面向对象三大特征之多态?(代码片段)

多态基本介绍快速入门接口体现多态的两种形式多态参数多态数组基本介绍变量(实例)具有多种形态。面向对象的三大特征,在Go语言,多态特征是通过接口实现的。可以按照统一的接口来调用不同的实现。这... 查看详情

java学习心得之httpclient的get和post请求

...http://www.cnblogs.com/FengXueTing-px/欢迎转载Java学习心得之 HttpClient的GET和POST请求1.前言2.GET请求3.POST请求  一、前言本篇博文记录了HttpClient的GET和POST请求本文内容基于以下文章:http://huangqiqing123.iteye.com/blog/20 查看详情

初识mybatis之入门案例

我也是自学了一下,在idea中基于maven的mybatis的配置。有什么不对的地方,请指正,谢谢。 1.1咋们先来配置测试一下,配置mybatis的图解: 1.2pom.xml需要mybatis的依赖节点,节点如下:1<dependencies>2<dependency>3<groupId&... 查看详情

golang如何体现面向对象三大特性之继承?(代码片段)

继承引出继承的必要性继承的基本介绍基本介绍示意图快速入门案例继承的好处继承的注意事项多重继承引出继承的必要性看一个问题,学生考试系统的程序,提出代码复用的问题。看下例代码:packagemainimport( "fmt... 查看详情

linux入门之磁盘管理lvm逻辑卷案例

Linux入门之磁盘管理(9)LVM逻辑卷案例案例介绍阶段(1):创建一个由两个物理卷组成的大小未20G的卷组myvg,要求其PE大小为16M;而在此卷组中创建一个大小未5G的逻辑卷lvtest,此逻辑卷要能在开机后自动挂载至/mnt/lvtest目录,且... 查看详情

cqrs简单入门(golang)(代码片段)

一、简单入门之入门  CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层。其实要实现的功能概要很简单,如下图。   基础框架选择了https://github.com/looplab/eventhorizon,该框架功能强大、示例都挺复杂的,囊括的... 查看详情

springcloud之eureka入门案例(附源码地址)(代码片段)

创建服务提供者添加pom文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst 查看详情

servlet简要介绍及入门案例。

...户端的请求,并且对请求作出相应。下面是Servlet的简单入门案例:    //编写一个类实现Servlet接口    public classServletTest1 implements Ser 查看详情

夺命雷公狗---微信开发57----微网站之jquery_mobile之入门案例

这节课我们主要用到到jquery_mobile来实现一个点电影播放网站jquery_mobile(简称JQM)其实就是基于jquery开发出来的一套移动端框架,适应移动用户端市场对浏览与体验从而进一步的提升jquery_mobile控件介绍jquery_mobile的语法将各个控... 查看详情

cmake系列之二:入门案例-单个源文件(代码片段)

编写一个源码文件如下1#include<stdio.h>2#include<stdlib.h>34doublepower(doublebase,intexponent)56intresult=base;7inti;8if(exponent==0)9return1;1011for(i=1;i<exponent;++i)12result=result*base;1 查看详情

自然语言处理之入门必学案例100例

bert_wwm_ext_pytorch+keras+tensorflow版本搭配http://t.csdn.cn/erzlb余弦相似度、欧式距离、闵氏距离、曼哈顿距离、切比雪夫距离。 http://t.csdn.cn/xvWratransformer详解---bert详解---GPT---ELMO---xlnet http://t.csdn.cn/K4Dg4nlp数据增强+ 查看详情