Никак не получается переписать этот код на golang. Исходный код:
# -*- coding: utf-8 -*-
import urllib
import json
data['param1'] = '1'
data['param2'] = '2'
params = {}
params['access_token'] = '3e17b2be0282a44'
params['data'] = json.dumps(data)
params = urllib.urlencode(params)
f = urllib.urlopen("http://pbrf.ru/pdf.F7", params)
print f.read()
Попытка 1:func Main() {
req, err := http.NewRequest("GET", "http://pbrf.ru/pdf.F7", nil)
if err != nil {
log.Print(err)
os.Exit(1)
}
q := req.URL.Query()
addKeyAndValue(&q, Init2())
req.URL.RawQuery = q.Encode()
fmt.Println(req.URL.String())
client := &http.Client{}
req.Header.Add("Content-Type","application/x-www-form-urlencoded")
resp, err := client.Do(req)
checkErr(err);
defer resp.Body.Close()
resp_body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(resp.Status)
fmt.Println(string(resp_body))
}
func addKeyAndValue(query *url.Values, parameters map[string]string) {
for key, value := range parameters {
query.Add(key, value)
}
return
}
Попытка 2:func NewBlank() {
type Request struct {
Access_token string `json:"access_token"`
Data map[string]string `json:"data"`
}
u := Request{ "3e17b2be0282a44505",Init()}
req, err := json.Marshal(u)
checkErr(err)
body := bytes.NewReader(req)
fmt.Println(string(req))
res, err := http.Post("http://pbrf.ru/pdf.F7", "application/json; charset=utf-8", body)
checkErr(err)
bod, err := ioutil.ReadAll(res.Body)
checkErr(err)
msg := gjson.Get(string(bod), "message").String()
println(msg)
}