0

このコードを 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設定などではなく、投稿リクエストに応答するときにのみ失敗します)

理由はありますか?

4

1 に答える 1