本文知识点

  • Go的安装
  • Go使用代理
  • Go进阶学习

环境配置

确认环境都安装好了,看看go的版本。

go version

代码样例

使用代理,发送GET请求

package main

import (
"compress/gzip"
"fmt"
"io"
"io/ioutil"
"net/http"
"net/url"
"os"
) func main() {
// 用户名密码(私密代理/独享代理) // 代理ip,由快代理提供
proxy_raw := "47.115.5.19:16816"
proxy_str := fmt.Sprintf("http://%s:%s@%s", proxy_raw)
proxy, err := url.Parse(proxy_str) // 目标网页
page_url := "http://dev.kdlapi.com/testproxy" // 请求目标网页
client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxy)}}
req, _ := http.NewRequest("GET", page_url, nil)
req.Header.Add("Accept-Encoding", "gzip") //使用gzip压缩传输数据让访问更快
res, err := client.Do(req) if err != nil {
// 请求发生异常
fmt.Println(err.Error())
} else {
defer res.Body.Close() //保证最后关闭Body fmt.Println("status code:", res.StatusCode) // 获取状态码
// 有gzip压缩时,需要解压缩读取返回内容
if res.Header.Get("Content-Encoding") == "gzip" {
reader, _ := gzip.NewReader(res.Body) // gzip解压缩
defer reader.Close()
io.Copy(os.Stdout, reader)
os.Exit(0) // 正常退出
} // 无gzip压缩, 读取返回内容
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
}

运行下,看看结果

go run demo.go

没问题,200 OK的

POST请求

把上面代码中的get,改成post就好了。就是这一句

req, _ := http.NewRequest("POST", page_url, nil)

进阶学习

最新文章

  1. Emotion Debt 2017/1/6
  2. python27(32位)安装模块报错“error: Unable to find vcvarsall.bat”
  3. Java Android HTTP实现总结
  4. css3和原生js时钟
  5. 一个java的DES加密解密类转换成C#
  6. Delphi七个版本
  7. jsp,OGNL调用后台Action的某方法
  8. C#实现中国天气网XML接口测试
  9. sqlserver 索引
  10. C# XML - XmlNode and XmlAttribute
  11. ESXi 与其它虚拟化底层产品之比较:
  12. Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动
  13. java第一次,第二次实训
  14. Flask 三方组件 Flask-Session
  15. Olivia Palermo & Johannes Huebl 模范情侣
  16. protobuf3.5.1使用的简单例子
  17. Android点击事件
  18. ruby md5 sha1 base64加密
  19. 在 Windows Azure 上设计多租户应用程序
  20. 揭开网络编程常见API的面纱【上】

热门文章

  1. Python语法速查: 20. 线程与并发
  2. 查漏补缺之Go的Strings, bytes, runes和字符
  3. 学习:Android框架
  4. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:将悬停的颜色应用在行或者单元格上
  5. Ajax--概述
  6. IOS switch-case知多少
  7. 使用JavaScript和Canvas打造真实的雨滴效果
  8. HDU - 1754 I Hate It (线段树点修改求最大值)
  9. id 和 class的区别
  10. tools.lombok