コピペでそのまま動きます。
go
1package main
2import (
3 "net/http"
4 "fmt"
5 "log"
6 "io/ioutil"
7 "strings"
8)
9
10func main(){
11 //POSTする
12 res, err := http.Post(
13 "http://example.com/api/posts/create", //URL
14 "application/json", //Header["Content-Type"]
15 strings.NewReader("'ids': [12, 3, 4, 5, 6]"), //Body
16 );
17
18 //エラーハンドリング
19 if err != nil{
20 log.Fatal(err)//プログラムの停止(停止しないのならlog.Print(err))
21 }
22 //レスポンスのボディの受け取り表示する
23 b, _ := ioutil.ReadAll(res.Body)//エラーハンドリングは省略
24 fmt.Println(string(b))
25}
jsonのエンコードとかはよくわかりませんが、そのまま文字列として送信できるものならこんな感じです。
エンコードなどが必要ならjsonを扱うパッケージがあるので、「godoc json」と検索してみてください。
修正方法
goでは"(ダブルクォート)の代わりに`(バッククォート)をstringのリテラルとしてつかうこともできます。(完全に同一ではありません)
データの受け取りやエラーハンドリングが必要なければ、「//エラーハンドリング」以下は省略してください。
その場合、res, errの変数を使用していないと怒られるので、=:(宣言&代入)より左を削除してください。
どちらかを受け取る場合は「//エラーハンドリングは省略」の部分のように受け取らない方を_(アンダーバー)で省略できます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。