golang GET http、https、代理方式

2023-11-15

package utils

import (
    "crypto/tls"
    "encoding/json"
    "io/ioutil"
    "log"
    "net/http"
    "net/url"
    "time"
)

func GET(url string, reply interface{}) (err error) {
    var (
        v        []byte
        response *http.Response
    )

    response, err = http.Get(url)

    if err != nil {
        return
    }

    if response == nil {
        return
    }

    defer response.Body.Close()

    if v, err = ioutil.ReadAll(response.Body); err != nil {
        return
    }

    return json.Unmarshal(v, reply)
}

func HttpsGET(url string, reply interface{}) (err error) {
    var (
        v        []byte
        response *http.Response
    )

    tr := &http.Transport{
        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
    }
    client := &http.Client{Transport: tr}
    response, err = client.Get(url)

    //response, err = http.Get(url)

    if err != nil {
        return
    }

    if response == nil {
        return
    }

    defer response.Body.Close()

    if v, err = ioutil.ReadAll(response.Body); err != nil {
        return
    }
    log.Printf("[GET]%#v", string(v))

    return json.Unmarshal(v, reply)
}

/*
步骤一:
引入 "crypto/tls" 包

步骤二:
定义TLSClientConfig,忽略证书校验:

tr := &http.Transport{
        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
    }

步骤三:
修改

client := &http.Client{}

client := &http.Client{Transport: tr}
*/

//使用代理服务的HTTP Get方法
func ProxyGet(proxy func(_ *http.Request) (*url.URL, error), url string) (resp *http.Response, err error) {

    transport := &http.Transport{Proxy: proxy, TLSClientConfig: &tls.Config{InsecureSkipVerify: true}}
    client := &http.Client{Transport: transport,Timeout:3*time.Second}

    return client.Get(url)

}

func ProxyHttpsGet(proxy func(_ *http.Request) (*url.URL, error), url string,reply interface{})(err error)  {
    var (
        v        []byte
        response *http.Response
    )

    tr := &http.Transport{
        Proxy: proxy,
        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
    }
    client := &http.Client{Transport: tr,Timeout:3*time.Second}
    response, err = client.Get(url)

    //response, err = http.Get(url)

    if err != nil {
        return
    }

    if response == nil {
        return
    }

    defer response.Body.Close()

    if v, err = ioutil.ReadAll(response.Body); err != nil {
        return
    }
    log.Printf("[GET]%#v", string(v))

    return json.Unmarshal(v, reply)
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

golang GET http、https、代理方式 的相关文章

  • 使用Chrome浏览器的搜索引擎,谷歌浏览器开启同步功能

    试了很多方法使用谷歌的搜索和登录 结果都是页面加载失败 最后还是找到了一个插件 极简插件 https chrome zzzmh cn extension 右上角搜索 chrome同步助手 点击推荐下载 chrome 打开chrome 点击右
  • 【XCTF 攻防世界】WEB 高手进阶区 web2

    题目链接 https adworld xctf org cn task answer type web number 3 grade 1 id 5326 page 2 打开场景 看到PHP代码 下面还有贴心注释 额 这题为啥不出在密码学里面
  • 每个人都要了解的Hash算法原理和特性

    HASH算法 概念 一般翻译做 散列 就是把任意长度的输入通过散列函数变化成固定长度的输出 该输出就是散列值 散列的空间通常远远小于输入的空间 不同的输入会散列城相同的输出 散列冲突 优秀hash特点 正向快速 逆向困难 输入敏感 输入一点
  • 快速幂算法 Quickmod(C语言)

    快速幂的算法 快速幂算法一般用于指数比较大的幂运算 例如3的100次方 2的50次方等等 相比于使用pow a b 函数来说 快速幂运行所需时间更小 在一些有时间限制的题目上有着非常大的优势 算法原理 例如我要算3的100次方 我们可以不停
  • 关于 ‘else‘ without a previous ‘if‘错误

    Status SearchBST BiSTree T int key if T return ERROR else return 1 这里编译会报错 s ex main cpp 36 error else without a previou
  • 神经网络初级学习(Python代码实现)

    运行结果 Python代码实现 coding gbk 导入相关库 import numpy as np import matplotlib pyplot as plt import matplotlib as mpl mpl rcParam
  • 利用typora提取代码块粘贴到word文档中的方法

    安装好typora软件 typora后来听说收费了 我在360软件管家里下载typora0 9X版本 是免费的 打开如图界面 点击代码块后出现输入框 输入代码 右下角选择语言assembly即汇编语言 鼠标点击空白处 例如下图光标所在位置
  • Docker容器技术&项目部署

    文章目录 1 初始Linux 1 1 素材提供 1 1 2 素材下载 1 2 Linux简介 1 2 1 Linux与Windows的区别 1 2 2 虚拟机 2 新建虚拟机 3 在虚拟机中安装Linux 4 设置网络 5 安装Xmanag
  • 区块链学习(solidity)【Day07-10

    Vs Code 中使用 solidity 安装插件 安装 solidity 插件 书写合约 在编写 solidity 的合约时要在首行加上 MIT 许可证 并选择适当的 SPDX 许可证标识符 SPDX License Identifier
  • React.createElement: type is invalid -- expected a string (for built-in components) or a class..

    问题 Warning React createElement type is invalid expected a string for built in components or a class function for composi
  • 聊聊机器如何“写“好广告文案?

    作者 张超 除非你的广告建立在伟大的创意之上 否则它就像夜航的船 不为人所注意 大卫 奥格威 现代广告业奠基人 01 引子 创意作为一种信息载体 将广告主的营销内容呈现给用户 辅助用户消费决策 乃至激发潜在需求 通常 创意可表现为文本 图片
  • 访问不了网页故障排除

    问题 访问某一个网站 www sogou com cn 但是我们发现访问不了 这个时候 你如何排查这个问题 目录 前置知识 扩展 排查问题 前置知识 访问网站的基本流程 1 在浏览器地址栏输入网址 2 本地DNS服务器解析网址 域名解析 域
  • 【雅思备考】Simon口语课

    口语考试概述 考试时间 共计11 14分钟 part1 4 5min part2 3 4min part3 4 5min 评分标准 流畅度 是否合理 词汇 语法 少犯错 而不是用复杂语法 发音 总体建议 好好准备 知道考官想要什么 比如第一
  • centos7配置IP地址

    有关于centos7获取IP地址的方法主要有两种 1 动态获取ip 2 设置静态IP地址 1 动态获取ip 前提是你的路由器已经开启了DHCP 修改网卡配置文件 vi etc sysconfig network scripts ifcfg
  • HTML5 CSS3学习

    HTML5 CSS3学习 http www 1000zhu com course css3 HTML5 相关书籍 http www html5cn com cn news gdt 2013 05 11 276 html 转载于 https
  • Queen on Grid_dp

    思想很单纯 gt dp Code 代码解释 dp i j ans 1 i 1 j 竖着过来 dp i j mod dp i j ans 2 i j 1 横着过来 dp i j mod dp i j ans 3 i 1 j 1 斜着过来 dp
  • Java实现快排算法

    快排算法的思想用笔画画其实不难理解 但是当我想用代码写出来时发现没那么简单 好久没接触这些基本的知识又忘了 在此做个笔记 我对快排的理解是 从数组的第一个数字开始 每轮确定一个数字的正确位置 当所有数字的位置确定好了 也就排好序了 一 先用
  • STM32初学入门笔记(3):STM32CubeMX配置STM32实现多通道ADC+DMA读取模拟量

    模拟信号的读取是我们在做很多项目是都要用到的 而模拟量的读取就要依赖于ADC数模转换器 对于初学者 学习使用ADC可以很大的帮助以后的STM32学习 目录 ADC简介 DMA简介 工程开始 STM32CubeMX配置区 配置外部时钟 配置调
  • Git 开发必备 .gitignore 详解!【建议收藏】

    作者 Linux猿 简介 CSDN博客专家 C C 面试 刷题 算法尽管咨询我 关注我 有问题私聊 关注专栏 Linux 优质好文持续更新中 目录 一 为什么使用 gitignore 二 使用规则 2 1 注释 2 2 忽略文件 2 3 忽
  • 移动支付那点事儿

    关于本文支付相关的源码详见我的开源项目MobilePayment 前言 移动支付其实是非常简单的 因为只要按照第三方的文档来就行了 所以在本次分享中 其实更像是一次开发的纪要 当然也有一些看点 做过支付的人都知道支付的难点其实是在第三方文档

随机推荐

  • 狂神说Go语言学习笔记(一)

    狂神说Go语言学习笔记 二 狂神说Go语言学习笔记 三 狂神说Go语言学习笔记 四 一 Go语言的发展史 二 Go语言能做什么 三 Go语言环境安装 下载地址 国外网站太慢 我们使用中文网进行下载 Go下载 Go语言中文网 Golang中文
  • 海伯利安生态内用户如何实现资产跨链?意义何在!

    随着ERC20高额的转账Gas费和网络拥堵问题日益突显 越来越多的用户感受到了前所未有的高操作成本 直呼转不起账了 没法玩了 那么为了减缓用户压力 海伯利安技术团队目前正在紧张地部属基于Heco生态链与Atlasl链之间的跨链桥 帮助用户在
  • Python制作【大麦网】抢票程序,看演唱会再也不怕没票了

    前言 大麦网 是中国综合类现场娱乐票务营销平台 业务覆盖演唱会 话剧 音乐剧 体育赛事等领域 但是因为票数有限 还有黄牛们不能丢了饭碗 所以导致了 很多人都抢不到票 那么 今天带大家用Python来制作一个自动抢票的脚本小程序 知识点 面向
  • PyTorch错误收集与解决方法

    PyTorch错误收集与解决方法 文章目录 PyTorch错误收集与解决方法 RNN的初始状态在多GPU训练报错 RuntimeError module must have its parameters and buffers on dev
  • matlab中怎么获取文件路径,matlab获取文件路径和读写二进制文件

    1 matlab中处理路径和文件名 主要用到2个函数 pathstr name ext versn fileparts filename fileparts函数返回文件路径各部分的信息 在返回的参数中 pathstr表示文件路径 name是
  • 使用vscode remote ssh功能远程连接服务器或树莓派时,报错Setting up SSH tunnel的终极解决办法,全网仅此一份

    当你想用vscode remote ssh 功能远程开发linux服务器 树莓派时 vscode server文件创建完成 但是一直显示卡在 Setting up SSH Host lt 你的用户名 gt Setting up SSH tu
  • Kendo UI开发教程(1): 概述

    JavaScript 在开发Web应用的作用越来越大 JQuery简化了HTML和JavaScript之间的操作 jQuery的教程可以参见本博客jQuery和 jQuery UI 入门教程 jQuery UI 是一套 JavaScript
  • 前端开发程序员的月薪到底有多高?

    前几天微信公开课上 张小龙现场展示了 跳一跳 听说还会邀请最会 跳 的人去其办公室一决高下 不由让人下定决心苦练神功 以见张大佬一面 不管是小程序的横空出世 还是Web应用的大量涌现 它们都掀起了一波 前端开发需求热 给前端开发工程师们带来
  • RedisTemplate读取包含指定前缀的Key的value

    文章已同步到个人博客 http www tianshaojiao com p 2140 一 需求 我在做im开发的时候 往往需要在redis中存入客户端与服务端的连接信息 这些连接信息都是有指定前缀的 如下图所示 现在如果想要推送消息到所有
  • 【华为OD机试真题2023 JS】Linux发行版的数量

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 Linux发行版的数量 知识点DFS搜索BFS搜索并查集 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 Linux操作系统有多个发行版 distrowatch
  • -std=c99带来问题

    今天用 std c99编译c文件 内容是信号这一块的 包含了sigprocmask 编译时发现总是显示sigset t类型没有声明 函数中的3个状态的无法找到 后来发现把 std c99去掉就行了 不知道有什么区别
  • 15 玩转STM32之IIC通信(芯片硬件篇)

    15 1 IIC控制器说明 硬件部分 在14 玩转STM32之IIC通信 软件模拟篇 我们讲了软件模拟的方式 本章讲解芯片自带的硬件部分 并非所有的芯片都含有IIC 像51系列的是没有的 但是绝大多数是有的 根据我用过的S32 STM32
  • 高通 ADSP sensor SSC

    1 添加入口函数 adsp sensors dd qcom inc sns dd h extern sns ddf driver if s sns dd
  • 实战:单点登录的两种实现方式,附源码

    最近工作有点忙 好久没更新文章了 正好这两天在整理单点登陆相关的文档 今天趁着小孩睡着了 赶紧码一篇实战文交差 概念 单点登录 Single Sign On SSO 是一种身份验证服务 允许用户使用单个标识来登录多个应用程序或系统 如下图所
  • 关于vue-cli2.9.6 使用vue-video-player,视频播放rtmp视频流error:in ./node_modules/videojs-swf/dist/video-js.swf

    我在做vue前端开发项目的时候 领导让我在别人项目的基础上进行二次开发 我将自己的页面合并至平台 我用的vue cli版本是2 6 9 然后我按照正常流程 引入vue video player video js等 然后配置playerOpt
  • 【算法/剑指Offer】请实现一个函数,用来判断一颗二叉树是不是对称的。

    题目描述 请实现一个函数 用来判断一颗二叉树是不是对称的 注意 如果一个二叉树同此二叉树的镜像是同样的 定义其为对称的 代码很简单 关键还是知道怎么样才能判断一个 二叉树是否对称 只要采用前序 中序 后序 层次遍历等任何一种遍历方法 分为先
  • 复习笔记——计算机组成原理

    2014年12月考研前一周写的笔记 放在这里 希望对其他人有帮助 写到一半时 发现这个公开课的资料挺全的 http share onlinesjtu com course view php id 3 教材 视频 ppt 还有swf
  • 简单使用Linux

    1 创建虚拟机及安装操作系统 一 打开下载好的VMware Workstation软件 二 点击 创建新的虚拟机 三 选择需要创建的虚拟机 建议选自定义 再点击下一步 四 选择系统默认兼容性并选择稍后安装 再点击下一步 五 选择Linux系
  • 互联网晚报

    腾讯回应高考生喊话马化腾 2023高考首日 在杭州十四中考点 第一科语文科目考试还没有结束 一名男生就走出了考场 面对记者采访 男生喊话马化腾 腾讯能不能把QQ空间改回老版 新版太难用了 对此 腾讯QQ在其官方微博回应称 腾讯非常重视其建议
  • golang GET http、https、代理方式

    package utils import crypto tls encoding json io ioutil log net http net url time func GET url string reply interface er