为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不使用 go-pkg-rss 返回 Atom 项目标题?

为什么不使用 go-pkg-rss 返回 Atom 项目标题?

Go
汪汪一只猫 2021-06-01 13:57:08
要么我失去理智,我不理解指针数组,要么库被破坏了。也许你可以帮忙。下面的代码似乎可以很好地获取 Atom 项目,但是查看它们的标题时会返回为空字符串。(这恰好是通过 http 实现的,我认为这不是问题,但当然一切皆有可能。)package mainimport (    "fmt"    rss "github.com/jteeuwen/go-pkg-rss"    "net/http"    "os")var items []*rss.Itemvar channels []*rss.Channelfunc hello(w http.ResponseWriter, r *http.Request) {    feed := rss.New(5, true, chanHandler, itemHandler)    url := "http://stackoverflow.com/feeds"    feed.Fetch(url, nil)    fmt.Printf("Sent fetch for %s\n", url)    fmt.Fprintf(w, "There are %d items in %s\n\n", len(items), url)    for key, value := range items {        fmt.Fprintf(w, "%d: %s\n\n", key, value.Title)    }}func main() {    http.HandleFunc("/", hello)    http.ListenAndServe(":"+os.Getenv("PORT"), nil)}func chanHandler(feed *rss.Feed, newchannels []*rss.Channel) {    channels = newchannels}func itemHandler(feed *rss.Feed, ch *rss.Channel, newitems []*rss.Item) {    items = newitems}
查看完整描述

3 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

你的代码也不适合我。虽然获取的记录数是正确的,但记录本身没有价值。随意在项目的 github 页面上提交问题。

另请注意,您将项目传输到 http 处理程序的方式在itemHandler并发执行时存在数据竞争,并且不知道在 http 执行for循环时是否调用它。最好为此使用频道!


查看完整回答
反对 回复 2021-06-28
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信