このコードを LiteIDE でビルドおよび実行コマンドを使用して実行すると、機能します。しかし、私がそれを実行すると
go run scraper.go
または
go build scraper.go
./scraper
r.Body.Close() 行で失敗し、エラーが発生します
panic: runtime error: invalid memory address or nil pointer dereference
問題のあるコードは次のとおりです。
r, err := http.Get(job.Url)
defer r.Body.Close() //same error with or without defer
スクリプトはここにあります: https://gist.github.com/meddulla/5934457しかし、基本的には投稿リクエストを介してスクレイピングする URL を受け入れます。
curl -X POST -d "[{\"url\": \"http://localhost:8888/IBTX/proj/dev/article.html\"}]" http://localhost:8080/jobs/add
そして、なぜそれがliteIdeで機能するのか理解できませんが、ターミナルで直接実行すると機能しません(プログラムは正常に起動するため、GOPATH設定などではなく、投稿リクエストに応答するときにのみ失敗します)
理由はありますか?