我有一个结构,我必须发送到api,这是一个发布请求。但输入是表单字段。字段包含字符串,整数,浮点数和图像。 我试图使用WriteField函数,但由于此函数只接受字符串作为参数,我不能处理整数和浮点数。我怎么做。这是我的结构和代码片段。
c := finalObject{
name: Name,
ProfilePic:"/img/unknown.jpg",
owner:"Mr Hall",
latitude:26.5473828,
longitude:88.4249179,
opendays:"Monday-Friday",
openhours:"10am to 5pm",
catId:82,
address:address,
phone_number:2312312,
mobile_number:312312,
email:"dsdas@a.com",
}
url := "https://abcd.com/a"
fmt.Println("URL:>", url)
b, err := json.Marshal(c)
if err != nil {
fmt.Println("error:", err)
}
os.Stdout.Write(b)
var jsonStr = []byte(b)
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
req.Header.Set("Authorization", "AUTH_TOKEN")
req.Header.Set("enctype", "multipart/form-data")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("response Status:", resp.Status)
fmt.Println("response Headers:", resp.Header)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
fmt.Printf("%#v", c);
}
答案 0 :(得分:1)
HTTP表单中的表单值仅作为字符串值发送。
如果您可以自由决定表单键,那么您可以将整个结构作为json编码的字符串添加到泛型"数据"字段并发送请求。否则,您必须将结构值转换为字符串表示形式以在请求中发送它们。