亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

循環訪問 API 響應以獲取多個頁面

循環訪問 API 響應以獲取多個頁面

Go
慕娘9325324 2022-09-12 20:33:57
這是我的代碼:func nextpage(id int, currentpage string) string {    response, err := http.Get(fmt.Sprintf("https://groups.roblox.com/v1/groups/%d/users?sortOrder=Asc&limit=100&cursor=%s", id, currentpage))    if err != nil {        panic(err)    }    defer response.Body.Close()    var getcursor *gus    error := json.NewDecoder(response.Body).Decode(&getcursor)    if error != nil {        fmt.Println(error)    }    return getcursor.Nextpagecursor}func cycle(id int) string {    secondpage := nextpage(id, "")    thirdpage := nextpage(id, secondpage)    fourthpage := nextpage(id, thirdpage)    return secondpage}這是做什么的:它向 https://groups.roblox.com/v1/groups/2/users?sortOrder=Asc&limit=100&cursor= 發送請求然后它返回給出的響應的下一頁游標。然后我嘗試使用最后一個名為cover的函數循環瀏覽頁面但我不知道如何讓它工作給我每個下一頁游標,所以我可以從每個頁面獲取數據。
查看完整描述

1 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

這是一個典型的 JSON API 工作流:


package main


import (

   "encoding/json"

   "net/http"

)


type users struct {

   NextPageCursor string

   Data []struct {

      User struct { Username string }

   }

}


func (u *users) get() error {

   req, err := http.NewRequest("GET", "https://groups.roblox.com/v1/groups/2/users", nil)

   if err != nil {

      return err

   }

   if u.NextPageCursor != "" {

      q := req.URL.Query()

      q.Set("cursor", u.NextPageCursor)

      req.URL.RawQuery = q.Encode()

   }

   res, err := new(http.Client).Do(req)

   if err != nil {

      return err

   }

   defer res.Body.Close()

   return json.NewDecoder(res.Body).Decode(u)

}

例:


package main

import "fmt"


func main() {

   var u users

   for range [2]struct{}{} {

      u.get()

      fmt.Printf("%+v\n", u)

   }

}

結果:


{NextPageCursor:155884_1_1c6bfd900d25d25d1949dcfead5765e5 Data:[{User:{Username:jkid243}} {User:{Username:CpMod}} {User:{Username:Zeluka}} {User:{Username:tfts}} {User:{Username:saveaseal13}} {User:{Username:Beast440}} {User:{Username:leolr9}} {User:{Username:eggnog22}} {User:{Username:mathgeek007}} {User:{Username:WhatsForDinner}}]}

{NextPageCursor:367165_1_903387d5f21f53fccf4a693d918d880a Data:[{User:{Username:banjoist26}} {User:{Username:itsmariosbuddy}} {User:{Username:toabytooby2211}} {User:{Username:ShadowLuigi}} {User:{Username:calim}} {User:{Username:Sonicthehedgehog9000}} {User:{Username:benjy8}} {User:{Username:bregfhafrh}} {User:{Username:crashman15}} {User:{Username:hiedi00}}]}



查看完整回答
反對 回復 2022-09-12
  • 1 回答
  • 0 關注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號