Golang包——net/http

巴翔 · · 955 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

type UserInfo struct {
    ApiKey string `json:"apiKey"`
    UserId string `json:"userId"`
}
type Perception struct {
    InputText  map[string]string           `json:"inputText,omitempty"`
    InputImage map[string]string           `json:"inputImage,omitempty"`
    SelfInfo   map[string]*RequestLocation `json:"selfInfo,omitempty"`
}

type RequestLocation struct {
    City     string `json:"city,omitempty"`
    Province string `json:"province,omitempty"`
    Street   string `json:"street,omitempty"`
}

type RequestStruct struct {
    ReqType    int         `json:"reqType"`
    UserInfo   *UserInfo   `json:"userInfo"`
    Perception *Perception `json:"perception"`
}

type Test1 struct {
    Id    string
    Age   string
    Class string
}
type Test struct {
    Name  string
    Test1 Test1
}

func main() {

    apiAddress := "http://openapi.tuling123.com/openapi/api/v2"
    requeStruct := &RequestStruct{0,
        &UserInfo{ApiKey: "231ae8807c384f41805802bdd4973638", UserId: "123456111"},
        &Perception{InputText: map[string]string{"text": "今天的天气如何"}, SelfInfo: map[string]*RequestLocation{"location": &RequestLocation{City: "北京"}}}}

    jsonByte, err := json.Marshal(requeStruct)

    if err != nil {
        fmt.Println(err.Error())
    } else {
        fmt.Println(string(jsonByte))
    }
    request, err := http.NewRequest("POST", apiAddress, bytes.NewBuffer(jsonByte))
    if err != nil {
        fmt.Println(err.Error())
    }
    request.Header.Set("Content-Type", "application/json;charset=UTF-8")
    client := http.Client{}
    resp, err := client.Do(request)
    if err != nil {
        fmt.Println(err.Error())
        return
    }
    defer resp.Body.Close()
    respBytes, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println(err.Error())
        return
    }
    fmt.Println(string(respBytes))
}

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:巴翔

查看原文:Golang包——net/http

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

955 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传