golang 带header的post请求

因为今日头条的开放品台不能进行开发者资质认证了,所以只能抓包看一下发表文章的接口,因为肯定是要登录才能正常请求的,所以必须要传cookie等一些header信息的
就以存草稿为例:

func main() {
    param := map[string]string{
        `article_type`:           `0`,
        `title`:                  ``,
        `content`:                ``,
        `activity_tag`:           `0`,
        `title_id`:               `0`,
        `claim_origin`:           `0`,
        `article_ad_type`:        `3`,
        `add_third_title`:        `0`,
        `recommend_auto_analyse`: `0`,
        `tag`:                    `news`,
        `article_label`:          `0`,
        `is_fans_article`:        `0`,
        `quote_hot_spot`:         `0`,
        `govern_forward`:         `0`,
        `push_status`:            `0`,
        `push_android_title`:     ``,
        `push_android_summary`:   ``,
        `push_ios_summary`:       ``,
        `timer_time`:             `2018-11-01 03:21`,
        `column_chosen`:          `0`,
        `pgc_id`:                 ``, //article_id
        `qy_self_recommendation`: `0`,
        `pgc_feed_covers`:        ``,
        `need_pay`:               `0`,
        `from_diagnosis`:         `0`,
        `save`:                   `0`,
    }

    var paramString string
    for k, v := range param {
        paramString += k + `=` + v + `&`
    }
    paramString = strings.TrimSuffix(paramString, `&`)
    fmt.Println(paramString)
    url := "https://mp.toutiao.com/core/article/edit_article_post/?source=mp&type=article"
    client := &http.Client{}
    req, err := http.NewRequest("POST", url, strings.NewReader(paramString))
    if err != nil {
        print(err)
    }
    req.Header.Set("Cookie", ``)
    req.Header.Set("Pragma", "no-cache")
    // req.Header.Set("Accept-Encoding", "gzip, deflate, br")
    req.Header.Set("Accept-Language", "zh-CN,zh;q=0.8")
    req.Header.Set("Upgrade-Insecure-Requests", "1")
    req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")
    req.Header.Set("Accept", "text/javascript, text/html, application/xml, text/xml, */*")
    req.Header.Set("Connection", "keep-alive")
    req.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
    req.Header.Set("Cache-Control", "no-cache")

    resp2, err := client.Do(req)
    if err != nil {
        fmt.Println(`http error`, err)
    }

    body, err := ioutil.ReadAll(resp2.Body)
    if err != nil {
        fmt.Println(`get data error`, err)
    }
    fmt.Println(`body`, string(body))
}

中间文章内容格式需要根据页面操作结果慢慢调试一下的