diff options
author | Keuin <[email protected]> | 2022-09-07 10:18:55 +0800 |
---|---|---|
committer | Keuin <[email protected]> | 2022-09-07 10:18:55 +0800 |
commit | c72e692be33d5ab2884db6e2f1cf027f150a108a (patch) | |
tree | 170ea1989d215d0fede3f762f344bfb55e4c3fb3 | |
parent | 2033d66ce1fcbd6b5be00f35f9f2e1c07b5a8ba7 (diff) |
Bugfix: callGet[T] will panic if the request is unsuccessful
-rw-r--r-- | bilibili/request.go | 2 | ||||
-rw-r--r-- | bilibili/request_test.go | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/bilibili/request.go b/bilibili/request.go index cb989a7..c31cf75 100644 --- a/bilibili/request.go +++ b/bilibili/request.go @@ -38,11 +38,11 @@ func callGet[T BaseResponse[V], V any](b Bilibili, url string) (resp T, err erro } r, err := b.http.Do(req) - defer func() { _ = r.Body.Close() }() if err != nil { logger.Printf("ERROR: HTTP Request failed on API %v: %v", url, err) return } + defer func() { _ = r.Body.Close() }() err = validateHttpStatus(r) if err != nil { diff --git a/bilibili/request_test.go b/bilibili/request_test.go new file mode 100644 index 0000000..68e5c7a --- /dev/null +++ b/bilibili/request_test.go @@ -0,0 +1,14 @@ +package bilibili + +import ( + "testing" +) + +func Test_callGet(t *testing.T) { + // an always-fail request should not panic + bi := NewBilibili() + _, err := callGet[BaseResponse[struct{}]](bi, "https://256.256.256.256") + if err == nil { + t.Fatalf("the artificial request should fail, but it haven't") + } +} |