{"id":647,"date":"2024-04-01T10:08:22","date_gmt":"2024-04-01T02:08:22","guid":{"rendered":"https:\/\/china-abc.leohe.net.cn\/?p=647"},"modified":"2024-04-01T10:08:22","modified_gmt":"2024-04-01T02:08:22","slug":"golang-%e5%b9%b6%e5%8f%91%e8%af%b7%e6%b1%82","status":"publish","type":"post","link":"https:\/\/china-abc.leohe.net.cn\/?p=647","title":{"rendered":"golang \u5e76\u53d1\u8bf7\u6c42"},"content":{"rendered":"<div>\n<div>package main<\/div>\n<div>import (<\/div>\n<div>\"fmt\"<\/div>\n<div>\"io\/ioutil\"<\/div>\n<div>\"net\/http\"<\/div>\n<div>\"sync\"<\/div>\n<div>)<\/div>\n<div>\/\/ \u5b9a\u4e49\u8bf7\u6c42\u7ed3\u679c\u7684\u7ed3\u6784\u4f53<\/div>\n<div>type Response struct {<\/div>\n<div>URL string<\/div>\n<div>Body []byte<\/div>\n<div>Error error<\/div>\n<div>}<\/div>\n<div>func main() {<\/div>\n<div>\/\/ \u5047\u8bbe\u6211\u4eec\u670910\u4e2a\u7f51\u5740<\/div>\n<div>urls := []string{<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2104061240261111198579\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2104231510031401001\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=210513142437820140\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2106011528471953957\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=210617100209726953\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2106171533531111285065\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2107092127301111202822\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=21080811074988808\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2108251724531112183027\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2112081655171111777555\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2203232020501112787513\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2203241534391113388373\",<\/div>\n<div>\"http:\/\/simcrm.jinyingjie.com\/?m=api&amp;a=dealOrderDataMove&amp;order_num=2205060820161111695191\",<\/div>\n<div>\/\/ \"https:\/\/www.baidu.com\",<\/div>\n<div>}<\/div>\n<div>var wg sync.WaitGroup<\/div>\n<div>responses := make(chan Response, len(urls)) \/\/ \u521b\u5efa\u4e00\u4e2abuffered channel\u6765\u63a5\u6536\u54cd\u5e94<\/div>\n<div>\/\/ \u53d1\u8d77\u5e76\u53d1\u8bf7\u6c42<\/div>\n<div>for _, url := range urls {<\/div>\n<div>wg.Add(1) \/\/ \u9012\u589eWaitGroup\u7684\u8ba1\u6570\u5668<\/div>\n<div>go func(url string) {<\/div>\n<div>defer wg.Done() \/\/ \u8bf7\u6c42\u5b8c\u6210\u540e\u9012\u51cfWaitGroup\u7684\u8ba1\u6570\u5668<\/div>\n<div>resp, err := http.Get(url)<\/div>\n<div>if err != nil {<\/div>\n<div>responses &lt;- Response{URL: url, Error: err}<\/div>\n<div>return<\/div>\n<div>}<\/div>\n<div>defer resp.Body.Close()<\/div>\n<div>body, err := ioutil.ReadAll(resp.Body)<\/div>\n<div>if err != nil {<\/div>\n<div>responses &lt;- Response{URL: url, Error: err}<\/div>\n<div>return<\/div>\n<div>}<\/div>\n<div>responses &lt;- Response{URL: url, Body: body}<\/div>\n<div>}(url)<\/div>\n<div>}<\/div>\n<div>\/\/ \u7b49\u5f85\u6240\u6709\u8bf7\u6c42\u5b8c\u6210<\/div>\n<div>go func() {<\/div>\n<div>wg.Wait()<\/div>\n<div>close(responses) \/\/ \u6240\u6709\u8bf7\u6c42\u5b8c\u6210\u540e\u5173\u95edchannel<\/div>\n<div>}()<\/div>\n<div>\/\/ \u5904\u7406\u54cd\u5e94<\/div>\n<div>for response := range responses {<\/div>\n<div>ifresponse.Error!= nil {<\/div>\n<div>fmt.Printf(\"Error fetching %s: %v\\n\", response.URL, response.Error)<\/div>\n<div>continue<\/div>\n<div>}<\/div>\n<div>fmt.Printf(\"Fetched %s,body %s, body length: %d\\n\", response.URL, string(response.Body), len(response.Body))<\/div>\n<div>\/\/ \u5728\u8fd9\u91cc\u53ef\u4ee5\u8fdb\u4e00\u6b65\u5904\u7406\u54cd\u5e94\u4f53\uff0c\u6bd4\u5982\u89e3\u6790JSON\u7b49<\/div>\n<div>}<\/div>\n<div>}<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>package main import ( \"fmt\" \"io\/ioutil\" \"net\/http\" \"syn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[25],"tags":[],"_links":{"self":[{"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=\/wp\/v2\/posts\/647"}],"collection":[{"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=647"}],"version-history":[{"count":1,"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=\/wp\/v2\/posts\/647\/revisions"}],"predecessor-version":[{"id":648,"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=\/wp\/v2\/posts\/647\/revisions\/648"}],"wp:attachment":[{"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=647"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=647"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/china-abc.leohe.net.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}