• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang go-curl.EasyInit函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/andelf/go-curl.EasyInit函数的典型用法代码示例。如果您正苦于以下问题:Golang EasyInit函数的具体用法?Golang EasyInit怎么用?Golang EasyInit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了EasyInit函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: main

func main() {

	ch1 := curl.EasyInit()
	ch2 := curl.EasyInit()

	ch1.Setopt(curl.OPT_URL, "http://www.163.com")
	ch1.Setopt(curl.OPT_HEADER, 0)
	ch1.Setopt(curl.OPT_VERBOSE, true)
	ch2.Setopt(curl.OPT_URL, "http://www.baidu.com")
	ch2.Setopt(curl.OPT_HEADER, 0)
	ch2.Setopt(curl.OPT_VERBOSE, true)

	mh := curl.MultiInit()

	mh.AddHandle(ch1)
	mh.AddHandle(ch2)

	for {
		nRunning, _ := mh.Perform()
		// println("n =", nRunning)
		if nRunning == 0 {
			println("ok")
			break
		}
		time.Sleep(1000)
	}

}
开发者ID:ym,项目名称:go-curl,代码行数:28,代码来源:multi_sample.go


示例2: main

func main() {
	var (
		rset, wset, eset            syscall.FdSet
		still_running, curl_timeout int = 0, 0
		err                         error
	)

	ch1 := curl.EasyInit()
	ch2 := curl.EasyInit()

	ch1.Setopt(curl.OPT_URL, "http://www.163.com")
	ch1.Setopt(curl.OPT_HEADER, 0)
	ch1.Setopt(curl.OPT_VERBOSE, true)
	ch2.Setopt(curl.OPT_URL, "http://www.baidu.com")
	ch2.Setopt(curl.OPT_HEADER, 0)
	ch2.Setopt(curl.OPT_VERBOSE, true)

	mh := curl.MultiInit()

	mh.AddHandle(ch1)
	mh.AddHandle(ch2)

	for {
		FD_ZERO(&rset)
		FD_ZERO(&wset)
		FD_ZERO(&eset)

		timeout := syscall.Timeval{Sec: 1, Usec: 0}
		curl_timeout, err = mh.Timeout()
		if err != nil {
			fmt.Printf("Error multi_timeout: %s\n", err)
		}
		if curl_timeout >= 0 {
			timeout.Sec = int64(curl_timeout / 1000)
			if timeout.Sec > 1 {
				timeout.Sec = 1
			} else {
				timeout.Usec = int64((curl_timeout % 1000)) * 1000
			}
		}

		max_fd, err := mh.Fdset(&rset, &wset, &eset)
		if err != nil {
			fmt.Printf("Error FDSET: %s\n", err)
		}

		_, err = syscall.Select(int(max_fd+1), &rset, &wset, &eset, &timeout)
		if err != nil {
			fmt.Printf("Error select: %s\n", err)
		} else {
			still_running, err = mh.Perform()
			if still_running > 0 {
				fmt.Printf("Still running: %d\n", still_running)
			} else {
				break
			}
		}
	}

}
开发者ID:andelf,项目名称:go-curl,代码行数:60,代码来源:multi_and_select.go


示例3: getAllImageUrl

func getAllImageUrl(url string, ep string) {
	//init eas
	easy := curl.EasyInit()
	defer easy.Cleanup()
	//header
	easy = generateHeader(easy)
	//loop page
	for i := 0; i < 100; i++ {
		fmt.Println("page " + strconv.Itoa(i))
		url := url + strconv.Itoa(i)
		ur := getData(easy, url, ep)
		go downloadFromUrl(ur, ep, strconv.Itoa(i+1))

		ts := strings.Split(ur, "/")
		extn := strings.Split(ts[len(ts)-1], ".")
		if len(extn) == 1 {
			i = 100
		} else {
			if extn[1] == "png" || extn[1] == "jpg" {
				//lnjut
			} else {
				i = 100
			}
		}
	}

}
开发者ID:prima101112,项目名称:onepiece,代码行数:27,代码来源:onepiece.go


示例4: main

func main() {
	curl.GlobalInit(curl.GLOBAL_ALL)

	// init the curl session
	easy := curl.EasyInit()
	defer easy.Cleanup()

	// set URL to get
	easy.Setopt(curl.OPT_URL, "http://cn.bing.com/")

	// no progress meter
	easy.Setopt(curl.OPT_NOPROGRESS, true)

	easy.Setopt(curl.OPT_WRITEFUNCTION, write_data)

	// write file
	fp, _ := os.OpenFile(bodyfilename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0777)
	defer fp.Close()
	easy.Setopt(curl.OPT_WRITEDATA, fp)

	// easy.Setopt(curl.OPT_WRITEHEADER, 0)

	if err := easy.Perform(); err != nil {
		println("ERROR: ", err.Error())
	}

}
开发者ID:AterCattus,项目名称:go-curl,代码行数:27,代码来源:sepheaders.go


示例5: getCep

func getCep(id string) string {
	cached := getFromCache(id)
	if cached != "" {
		return cached
	}
	easy := curl.EasyInit()
	defer easy.Cleanup()

	easy.Setopt(curl.OPT_URL, "http://viacep.com.br/ws/"+id+"/json/")

	result := " "

	// make a callback function
	fooTest := func(buf []byte, userdata interface{}) bool {
		result = string(buf)

		return true
	}

	easy.Setopt(curl.OPT_WRITEFUNCTION, fooTest)

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}

	return saveOnCache(id, result)
}
开发者ID:eminetto,项目名称:goCep,代码行数:27,代码来源:server.go


示例6: main

func main() {
	curl.GlobalInit(curl.GLOBAL_ALL)

	// init the curl session
	easy := curl.EasyInit()
	defer easy.Cleanup()

	easy.Setopt(curl.OPT_URL, "http://cn.bing.com/")

	easy.Setopt(curl.OPT_WRITEFUNCTION, write_data)

	// make a chan
	ch := make(chan string, 100)
	go func(ch chan string) {
		for {
			data := <-ch
			println("Got data size=", len(data))
		}
	}(ch)

	easy.Setopt(curl.OPT_WRITEDATA, ch)

	if err := easy.Perform(); err != nil {
		println("ERROR: ", err.Error())
	}

	time.Sleep(10000) // wait gorotine
}
开发者ID:jmatrix,项目名称:go-curl,代码行数:28,代码来源:channal_callback.go


示例7: test_login

func test_login() {
	easy := curl.EasyInit()
	defer easy.Cleanup()

	fmt.Println(*url)
	easy.Setopt(curl.OPT_URL, *url)

	easy.Setopt(curl.OPT_WRITEFUNCTION, callback)

	var mylogin sLogin
	mylogin.Cmd = 1
	mylogin.User_name = "test1"
	mylogin.Passwd = "passwd"
	mylogin.Ver = 1

	body, err := json.Marshal(mylogin)
	if err != nil {
		panic(err.Error())
	}

	easy.Setopt(curl.OPT_POSTFIELDS, string(body))

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:26,代码来源:20110731_src_client.go


示例8: main

func main() {
	curl.GlobalInit(curl.GLOBAL_DEFAULT)
	defer curl.GlobalCleanup()
	easy := curl.EasyInit()
	defer easy.Cleanup()

	easy.Setopt(curl.OPT_URL, "ftp://ftp.gnu.org/README")

	// define our callback use lambda function
	easy.Setopt(curl.OPT_WRITEFUNCTION, func(ptr []byte, userdata interface{}) bool {
		file := userdata.(*os.File)
		if _, err := file.Write(ptr); err != nil {
			return false
		}
		return true
	})

	fp, _ := os.OpenFile(filename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0777)
	defer fp.Close() // defer close

	easy.Setopt(curl.OPT_WRITEDATA, fp)

	easy.Setopt(curl.OPT_VERBOSE, true)

	if err := easy.Perform(); err != nil {
		println("ERROR", err.Error())
	}
}
开发者ID:AterCattus,项目名称:go-curl,代码行数:28,代码来源:ftpget.go


示例9: test_get_realm

func test_get_realm() {
	//curl -d '{"cmd":3, "machine":1000, "ver":1, "acc_id":1001}' "http://127.0.0.1:9001"
	easy := curl.EasyInit()
	defer easy.Cleanup()

	fmt.Println(*url)
	easy.Setopt(curl.OPT_URL, *url)

	easy.Setopt(curl.OPT_WRITEFUNCTION, callback)
	var getRealm sGet_realm
	getRealm.Cmd = 3
	getRealm.Machine = 1000
	getRealm.Ver = 1
	getRealm.Acc_id = 1001

	body, err := json.Marshal(getRealm)
	if err != nil {
		panic(err.Error())
	}
	easy.Setopt(curl.OPT_POSTFIELDS, string(body))

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:25,代码来源:20110820_srv_client.go


示例10: main

func main() {
	curl.GlobalInit(curl.GLOBAL_ALL)

	// init the curl session
	easy := curl.EasyInit()
	defer easy.Cleanup()

	easy.Setopt(curl.OPT_URL, "http://curl.haxx.se/download/curl-7.22.0.tar.gz")

	easy.Setopt(curl.OPT_WRITEFUNCTION, write_data)

	easy.Setopt(curl.OPT_NOPROGRESS, false)

	started := int64(0)
	easy.Setopt(curl.OPT_PROGRESSFUNCTION, func(dltotal, dlnow, ultotal, ulnow float64, userdata interface{}) bool {
		// canceled when 50% finished
		if dlnow/dltotal > 0.5 {
			println("")
			// abort downloading
			return false
		}
		if started == 0 {
			started = time.Now().Unix()
		}
		fmt.Printf("Downloaded: %3.2f%%, Speed: %.1fKiB/s \r", dlnow/dltotal*100, dlnow/1000/float64((time.Now().Unix()-started)))
		return true
	})

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:AterCattus,项目名称:go-curl,代码行数:32,代码来源:progress.go


示例11: test_login

func test_login() {
	easy := curl.EasyInit()
	defer easy.Cleanup()

	fmt.Println(*url)
	easy.Setopt(curl.OPT_URL, *url)

	easy.Setopt(curl.OPT_WRITEFUNCTION, callback)
	easy.Setopt(curl.OPT_POSTFIELDS, "{\"cmd\":1, \"acc_id\":\"[email protected]\", \"passwd\": \"mypasswd\"}")

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:14,代码来源:20110715_srv_client.go


示例12: test_get_user_id

func test_get_user_id() {
	easy := curl.EasyInit()
	defer easy.Cleanup()

	fmt.Println(*url)
	easy.Setopt(curl.OPT_URL, *url)

	easy.Setopt(curl.OPT_WRITEFUNCTION, callback)
	easy.Setopt(curl.OPT_POSTFIELDS, "{\"cmd\": 5, \"realm_id\":0, \"acc_id\": 1}")

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:14,代码来源:20110731_src_client.go


示例13: test_get_realm

func test_get_realm() {
	easy := curl.EasyInit()
	defer easy.Cleanup()

	fmt.Println(*url)
	easy.Setopt(curl.OPT_URL, *url)

	easy.Setopt(curl.OPT_WRITEFUNCTION, callback)
	easy.Setopt(curl.OPT_POSTFIELDS, "{\"cmd\":3, \"machine\": 1000, \"ver\": 1}")

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:14,代码来源:20110715_srv_client.go


示例14: test_login

func test_login() {
	easy := curl.EasyInit()
	defer easy.Cleanup()

	fmt.Println(*url)
	easy.Setopt(curl.OPT_URL, *url)

	easy.Setopt(curl.OPT_WRITEFUNCTION, callback)
	easy.Setopt(curl.OPT_POSTFIELDS, "{\"cmd\":1, \"user_name\":\"test1\", \"passwd\": \"passwd\", \"ver\":1}")

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:14,代码来源:20110730_src_client.go


示例15: main

func main() {
	url := fmt.Sprintf("http://dev.markitondemand.com/MODApis/Api/v2/Quote/jsonp?symbol=%v&callback=my", os.Args[1])
	easy := curl.EasyInit()
	defer easy.Cleanup()
	easy.Setopt(curl.OPT_URL, url)

	handleData := func(buf []byte, userdata interface{}) bool {
		s := string(buf)
		print(s)
		return true
	}

	easy.Setopt(curl.OPT_WRITEFUNCTION, handleData)
	easy.Perform()
}
开发者ID:franzejr,项目名称:go-stock-market,代码行数:15,代码来源:main.go


示例16: test_get_realm

func test_get_realm() {
	//curl -d '{"cmd":3, "machine":1000, "ver":1, "acc_id":1001}' "http://127.0.0.1:9001"
	easy := curl.EasyInit()
	defer easy.Cleanup()

	fmt.Println(*url)
	easy.Setopt(curl.OPT_URL, *url)

	easy.Setopt(curl.OPT_WRITEFUNCTION, callback)
	easy.Setopt(curl.OPT_POSTFIELDS, "{\"cmd\":3, \"machine\": 1000, \"ver\": 1, \"acc_id\": 1001}")

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:15,代码来源:20110731_src_client.go


示例17: main

func main() {
	easy := curl.EasyInit()
	defer easy.Cleanup()

	easy.Setopt(curl.OPT_URL, "http://www.baidu.com/")

	// make a callback function
	fooTest := func(buf []byte, userdata interface{}) bool {
		println("DEBUG: size=>", len(buf))
		println("DEBUG: content=>", string(buf))
		return true
	}

	easy.Setopt(curl.OPT_WRITEFUNCTION, fooTest)

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:19,代码来源:20110707_curl.go


示例18: main

func main() {
	fmt.Println("Start proxy")
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		//urlhash := r.URL.Path[1:]
		q := r.URL.Query()
		urlhash := q.Get("u")
		url, err := base64.StdEncoding.DecodeString(urlhash)
		//url = []byte("https://www.google.com/search?q=neighborcity+agent+Karen+Frost&client=firefox-aurora&hs=CtL&rls=org.mozilla:en-US:unofficial&channel=sb&source=lnms&tbm=isch")
		fmt.Println(string(url))
		//return
		if err != nil {
			fmt.Println(w, "Error.")
			return
		}
		//aHR0cHM6Ly9heGNvdG8uY29t -> https://axcoto.com
		//fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])

		//aHR0cHM6Ly9pZmNvbmZpZy5tZQ== -> ifconfig.me
		easy := curl.EasyInit()
		defer easy.Cleanup()
		easy.Setopt(curl.OPT_URL, string(url))

		//What to do when finish CURL request.
		//We write back to original response
		requestFinish := func(buf []byte, userdata interface{}) bool {
			//println("DEBUG: size=>", len(buf))
			//println("DEBUG: content=>", string(buf))
			fmt.Fprintf(w, "%s", string(buf))
			return true
		}

		easy.Setopt(curl.OPT_WRITEFUNCTION, fooTest)
		//easy.Setopt(curl.OPT_HTTPHEADER, []string{"User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0"})
		easy.Setopt(curl.OPT_HTTPHEADER, []string{r.UserAgent()})

		if err := easy.Perform(); err != nil {
			fmt.Printf("ERROR: %v\n", err)
		}

	})
	http.ListenAndServe(":23478", nil)
}
开发者ID:kureikain,项目名称:go-anonymizer,代码行数:42,代码来源:proxy.go


示例19: main

func main() {
	// init the curl session

	easy := curl.EasyInit()
	defer easy.Cleanup()

	posturl := getUploadUrl()

	easy.Setopt(curl.OPT_URL, posturl)

	easy.Setopt(curl.OPT_PORT, 80)
	easy.Setopt(curl.OPT_VERBOSE, true)

	// save cookie and load cookie
	easy.Setopt(curl.OPT_COOKIEFILE, "./cookie.jar")
	easy.Setopt(curl.OPT_COOKIEJAR, "./cookie.jar")

	// disable HTTP/1.1 Expect: 100-continue
	easy.Setopt(curl.OPT_HTTPHEADER, []string{"Expect:"})

	form := curl.NewForm()
	form.Add("albumid", "452618633") // your album id
	form.AddFile("theFile", "./test.jpg")
	form.Add("description", "我就尝试下这段代码靠谱不。。截图下看看")
	form.Add("post", "上传照片")

	easy.Setopt(curl.OPT_HTTPPOST, form)

	// print upload progress
	easy.Setopt(curl.OPT_NOPROGRESS, false)
	easy.Setopt(curl.OPT_PROGRESSFUNCTION, func(dltotal, dlnow, ultotal, ulnow float64, _ interface{}) bool {
		fmt.Printf("Download %3.2f%%, Uploading %3.2f%%\r", dlnow/dltotal*100, ulnow/ultotal*100)
		return true
	})

	if err := easy.Perform(); err != nil {
		println("ERROR: ", err.Error())
	}

	time.Sleep(1000000000) // wait gorotine

}
开发者ID:AterCattus,项目名称:go-curl,代码行数:42,代码来源:renren_upload.go


示例20: test_get_init_mech

func test_get_init_mech() {
	easy := curl.EasyInit()
	defer easy.Cleanup()

	fmt.Println(*url)
	easy.Setopt(curl.OPT_URL, *url)

	easy.Setopt(curl.OPT_WRITEFUNCTION, callback)
	var InitMech sGet_init_mech
	InitMech.Cmd = 9
	InitMech.Acc_id = 1001
	body, err := json.Marshal(InitMech)
	if err != nil {
		panic(err.Error())
	}
	easy.Setopt(curl.OPT_POSTFIELDS, string(body))

	if err := easy.Perform(); err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}
}
开发者ID:bonly,项目名称:exercise,代码行数:21,代码来源:20110820_srv_client.go



注:本文中的github.com/andelf/go-curl.EasyInit函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang framebuffer.Segment类代码示例发布时间:2022-05-24
下一篇:
Golang suggest.Suggest类代码示例发布时间:2022-05-24
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap