comandy/http_test.go

59 lines
1.4 KiB
Go
Raw Normal View History

2024-04-15 23:58:32 +09:00
package main
import (
2024-04-17 18:06:38 +09:00
"encoding/base64"
2024-04-15 23:58:32 +09:00
"encoding/json"
"io"
"net/http"
"testing"
)
func TestClientGet(t *testing.T) {
_ = canUseIPv6.Get()
req, err := http.NewRequest("GET", "https://api.mangacopy.com/api/v3/h5/homeIndex?platform=3", nil)
if err != nil {
t.Fatal(err)
}
2024-04-17 00:31:31 +09:00
req.Header.Add("user-agent", "COPY/2.1.7")
2024-04-15 23:58:32 +09:00
resp, err := (*http.Client)(&cli).Do(req)
if err != nil {
t.Fatal(err)
}
defer resp.Body.Close()
t.Log("[T] response code", resp.StatusCode)
for k, vs := range resp.Header {
for _, v := range vs {
t.Log("[T] response header", k+":", v)
}
}
data, err := io.ReadAll(resp.Body)
if err != nil {
t.Fatal(err)
}
2024-04-16 15:27:06 +09:00
if len(data) == 0 {
t.Fail()
}
2024-04-15 23:58:32 +09:00
t.Log(bytesToString(data))
}
func TestRequest(t *testing.T) {
r := cli.request(`{"code":0,"headers":{"authorization":"Token ","host":"api.mangacopy.com","source":"copyApp","webp":"1","region":"1","version":"2.1.7","platform":"3","user-agent":"COPY/2.1.7"},"method":"GET","url":"https://api.mangacopy.com/api/v3/h5/homeIndex?platform\u003d3"}`)
t.Log(r)
c := capsule{}
err := json.Unmarshal(stringToBytes(r), &c)
if err != nil {
t.Fatal(err)
}
if c.C != http.StatusOK {
2024-04-17 18:06:38 +09:00
s, err := base64.StdEncoding.DecodeString(c.D)
if err != nil {
t.Fatal("status code", c.C, "msg:", c.D)
} else {
t.Fatal("status code", c.C, "msg:", s)
}
2024-04-15 23:58:32 +09:00
}
if len(c.D) == 0 {
t.Fatal("empty data")
}
}