質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

2回答

2619閲覧

goのpostリクエストを試したのですがinternal errorがでます

退会済みユーザー

退会済みユーザー

総合スコア0

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2017/10/06 14:15

編集2017/10/06 15:54

やったこと

pythonでqiitaにログインして見たという趣旨の記事を見ました。
qiitaのログインページを見たところ、記事執筆時と変わらないようだったので、golang版で適当にコードを書いて見ました。
しかし、帰ってきたhtmlコードを見ると、500 internal errorが発生しているようです。
なぜでしょう...

該当のコード

go

1package main 2 3import ( 4 "github.com/PuerkitoBio/goquery" 5 "net/http" 6 "net/url" 7 "strings" 8 "fmt" 9 "io/ioutil" 10 "net/http/cookiejar" 11) 12 13func main() { 14 //cookieを保持してログインする 15 jar, err := cookiejar.New(nil) 16 if err != nil { 17 // 18 } 19 20 client := http.Client{Jar: jar} 21 22 v := findAuthToken() 23 24 values := url.Values{} 25 values.Set("utf8", "✓") 26 values.Set("identity", "ユーザーネーム") 27 values.Set("password", "パスワード") 28 values.Set("authenticity_token", v) 29 30 req, err := http.NewRequest("POST", "https://qiita.com/login", strings.NewReader(values.Encode())) 31 if err != nil { 32 fmt.Println(err) 33 return 34 } 35 36 req.Header.Add("Content-Type", "application/x-www-form-urlencoded") 37 resp, err := client.Do(req) 38 39 defer resp.Body.Close() 40 body, _ := ioutil.ReadAll(resp.Body) 41 fmt.Println(string(body)) 42} 43 44//トークンを探す関数 45func findAuthToken() string { 46 doc, err := goquery.NewDocument("https://qiita.com/login") 47 if err != nil { 48 fmt.Print("url scarapping failed") 49 } 50 result := doc.Find("input").Next() 51 val, _ := result.Attr("value") 52 return val 53}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

パスワード(トークンも?)には注意が必要ですが

送信先URLを
https://httpbin.org/post
に変更し、返ってきたjsonを調べる事であなたの送信したパラメータが判明します。

投稿2019/03/13 06:35

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラーとかでてませんかー?
かくにんしてみてください

恐らくですが起動をミスったりしてると思います

投稿2019/03/13 06:13

編集2019/03/13 06:14
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問