golangは投稿、取得リクエスト、文字列からjson形式への変換を処理します

1. POSTリクエスト

package main

import (
  "bytes"
  "net/http"
  "io/ioutil"
)

type getToken struct{
    
      // 用于将string格式转成json格式,取出token
	Token string `json:"token"`
}

// 处理post请求
func GetToken() string {
    
      
	jsonStr :=[]byte(`{ "username": "xxx", "password": "xxx" }`)  // 请求时需要带的参数
	url:= "url"  // 请求的url
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))  // 发起请求,没有参数时,可将bytes.NewBuffer(jsonStr)改为nil
	req.Header.Add("Content-Type", "application/json") // 发起请求时需要的头信息
	rst.Header.Add("AUTHORIZATION", token)  // 发起请求时需要的头信息,需要多个时,可继续往后面加 

	client := &http.Client{
    
    }  // 处理返回结果
	resp, err := client.Do(req)
	if err != nil {
    
    
		// handle error
	}
	defer resp.Body.Close()
	var tokenJson getToken  // 定义一个结构体,用来将结果的string格式转成json格式,便于对请求结果进行处理
	body, _ := ioutil.ReadAll(resp.Body)  // 读取请求结果
	tokenGet := string(body)  // 请求结果string格式
	errJson := json.Unmarshal([]byte(tokenGet), &tokenJson)  // 将string 格式转成json格式
	if errJson != nil {
    
    
		initlog.Error.Println(errJson)  // 错误写进日志文件
	}
	return tokenJson.Token  // 所需要的请求结果token
}

注:上記のコードで定義された構造getTokenは、要求された文字列形式を便利なjson形式に変換するために使用されます。構造内の要素名の最初の文字は大文字にする必要があります!それ以外の場合は、ピットインするのは簡単です!

2. GetリクエストはPostと同じです。http.NewRequest()のメソッドをGETに変更するだけです。ここにコードはありません。

おすすめ

転載: blog.csdn.net/weixin_43202081/article/details/108727988