golang 实现http请求的调用,访问并读取页面数据和内置的一些方法
下午就不能好好学习一下golang,业务一直找个不停,自己定的业务规则都能忘得一干二净,让你查半天,完全是浪费时间。
golang实现访问并读取页面数据
package mainimport ("fmt""net/http"
)var urls = []string{"http://www.google.com/","http://golang.org/","http://blog.golang.org/",
}
// 使用http.Head方法,如果地址不通,自己换一个,这些是国外的,需要代理或者开加速器才行
func main() {// Execute an HTTP HEAD request for all url's// and returns the HTTP status string or an error string.for _, url := range urls {resp, err := http.Head(url)if err != nil {fmt.Println("Error:", url, err)}fmt.Println(url, ": ", resp.Status)}
}
golang使用http.get
package mainimport ("fmt""io/ioutil""log""net/http"
)func main() {res, err := http.Get("http://www.google.com")checkError(err)// 有些资料这里是ioutil.ReadAll,是因为版本低,高版本的可以改为以下的包路劲data, err := io.ReadAll(res.Body)checkError(err)// 这里会把网页的页面读取打印出来fmt.Printf("Got: %q", string(data))
}func checkError(err error) {if err != nil {log.Fatalf("Get : %v", err)}
}
通过 xml 包将这个状态解析成为一个结构
package mainimport ("encoding/xml""fmt""net/http"
)/*这个结构会保存解析后的返回数据。
他们会形成有层级的 XML,可以忽略一些无用的数据*/
type Status struct {Text string
}type User struct {XMLName xml.NameStatus Status
}func main() {// 发起请求查询推特 Goodland 用户的状态// 这个地址调不通了,是400,自己换一个其他的response, _ := http.Get("http://twitter.com/users/Googland.xml")// 初始化 XML 返回值的结构user := User{xml.Name{"", "user"}, Status{""}}// 将 XML 解析为我们的结构// 有些资料直接把response.Body放入到xml.Unmarshal中了,由于版本不同,高版本的这里是放入的btye数组,因此使用json方法转了一下byteRes, errorMsg := json.Marshal(response.Body)if errorMsg == nil {xml.Unmarshal(byteRes, &user)fmt.Printf("status: %s", user.Status.Text)}
}
http包中包含了各式各样的函数,方法供我们调用
-
http.Redirect(w ResponseWriter, r *Request, url string, code int):这个函数会让浏览器重定向到 url(可以是基于请求 url 的相对路径),同时指定状态码。 -
http.NotFound(w ResponseWriter, r *Request):这个函数将返回网页没有找到,HTTP 404 错误。 -
http.Error(w ResponseWriter, error string, code int):这个函数返回特定的错误信息和 HTTP 代码。 -
另一个 http.Request 对象 req 的重要属性:req.Method,这是一个包含 GET 或 POST 字符串,用来描述网页是以何种方式被请求的。 -
w.header().Set("Content-Type", "../..") 设置头信息,比如在网页应用发送 html 字符串的时候,在输出之前执行 w.Header().Set(“Content-Type”, “text/html”),注:w再这里是指http.ResponseWriter
我是demo
package mainimport ("io""net/http"
)const form = `<html><body><form action="#" method="post" name="bar"><input type="text" name="in" /><input type="submit" value="submit"/></form></body></html>
`/* handle a simple get request */
func SimpleServer(w http.ResponseWriter, request *http.Request) {io.WriteString(w, "<h1>hello, world</h1>")
}func FormServer(w http.ResponseWriter, request *http.Request) {w.Header().Set("Content-Type", "text/html")switch request.Method {case "GET":/* display the form to the user */io.WriteString(w, form)case "POST":/* handle the form data, note that ParseForm mustbe called before we can extract form data *///request.ParseForm();//io.WriteString(w, request.Form["in"][0])io.WriteString(w, request.FormValue("in"))}
}func main() {http.HandleFunc("/test1", SimpleServer)http.HandleFunc("/test2", FormServer)if err := http.ListenAndServe(":8088", nil); err != nil {panic(err)}
}
相关文章:
golang 实现http请求的调用,访问并读取页面数据和内置的一些方法
下午就不能好好学习一下golang,业务一直找个不停,自己定的业务规则都能忘得一干二净,让你查半天,完全是浪费时间。 golang实现访问并读取页面数据 package mainimport ("fmt""net/http" )var urls []string{…...
FFmpeg+OpenCV开发案例汇总
桌面共享工具(软编版) 桌面共享工具(DXGI硬编版) 智能广告大屏(可叠加透明广告) Android手机屏幕RTMP推流工具(推麦克风版) Android手机屏幕RTMP推流工具(推扬声器版…...
PySide6+VSCode Python可视化环境搭建
pip install pyside6 下载本期源码 vscode装一个PYQT Integration插件,设置好两个路径(下面有个脚本用于获取路径) 用everything的童鞋注意了:工具/选项/索引/强制重建 重启vscode可以看到,右击.ui文件时出现可以操作…...
【设计】设计一个web版的数据库管理平台后端精要
需求 springboot设计开发一个系统,在这个系统的数据库表中存放着2000个数据库实例,有MySQL、Oracle、sql server3种数据库类型,用户可以在页面上选择不同的实例,连接这些实例上的数据库,来执行业务sql 实现 Service…...
没有硬件基础可以学单片机吗?
没有硬件基础可以学单片机吗? 在开始前我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的, 我师父给了一些 电气工程师学习方法和资料,让我不断提升自己,…...
ChatGPT引领的AI面试攻略系列:cuda和tensorRT
系列文章目录 cuda和tensorRT(本文)AI全栈工程师 文章目录 系列文章目录一、前言二、面试题1. CUDA编程基础2. CUDA编程进阶3. 性能优化4. TensorRT基础5. TensorRT进阶6. 实际应用与案例分析7. 编程与代码实践8. 高级话题与趋势 一、前言 随着人工智能…...
【战略前沿】人形机器人制造商Figure获得了OpenAI、Jeff Bezos、Nvidia和其他科技巨头的资助
原文:Humanoid robot-maker Figure gets funding from OpenAI, Jeff Bezos, Nvidia, and other tech giants 作者:ASSOCIATED PRESS ———————————————— Figure成立不到两年,还没有商业产品,但正在说服有影响力的…...
多块磁盘组磁盘离线导致VSAN存储崩溃的VSAN数据恢复案例
VSAN简介: VSAN是以vSphere内核为基础进行开发、可扩展的分布式存储架构。VSAN存储层由VSAN控制和管理,VSAN存储层是通过vSphere集群主机中闪存和硬盘的存储空间构建的,供vSphere集群使用的统一共享存储层。 VSAN存储是一个对象存储ÿ…...
Jenkins 的安装(详细教程)
文章目录 一、简介二、安装前准备三、windows 安装与启动1. 方式一2. 方式二3. 方式三 四、创建管理员用户五、常用设置1. 配置镜像地址2. 更改工作目录3. 开启可注册用户4. 全局变量配置 一、简介 官网:https://www.jenkins.io 中文文档:https://www.j…...
使用html网页播放多个视频的几种方法
前言 因为项目测试需要,我需要可以快速知道自己推流的多路视频流质量,于是我想到可以使用html网页来播放视频,实现效果极其简单,方法有好几种,以下是几种记录: 注意:测试过,VLC需要使…...
python 基础知识点(蓝桥杯python科目个人复习计划58)
今日复习内容:做题 例题1:仙境诅咒 问题描述: 在一片神秘的仙境中,有N位修仙者,他们各自在仙境中独立修炼,拥有他们独特的修炼之地和修炼之道,修炼者们彼此之间相互尊重,和平相处…...
【基于React实现共享单车管理系统】—React基础知识巩固(二)
【基于React实现共享单车管理系统】—React基础知识巩固(二) 一、React介绍 Facebook开源的一个JavaScript库React结合生态构成的一个MV*库 React的特点 Declarative(声明式编码)Component-Based(组件化编码&#…...
云桥通+跨境电商:SDWAN企业组网优化跨境网络案例
跨境电商企业在全球范围内展开业务,需构建稳定高效的网络架构以支持其电商平台运营。云桥通SDWAN企业组网技术为跨境电商提供网络连接和管理的优化,提升网络性能、可靠性和安全性。以下是一家跨境电商企业的SDWAN组网案例,详细介绍其实施情况…...
服务器有几种http强制跳转https设置方法
目前为站点安装SSL证书开启https加密访问已经是件很简单的事了,主要是免费SSL证书的普及,为大家提供了很好的基础。 Apache环境下如何http强制跳转https访问。Nginx环境下一般是通过修改“你的域名.conf”文件来实现的。 而Apache环境下通过修改.htacces…...
web坦克大战小游戏
H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的订阅后,私信本人,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、贪吃蛇、飞机大战、坦克大战、开心消消乐、扑鱼达人、扫雷、打地鼠、斗地主等等。 <!DOCTYPE htm…...
如何使用生成式人工智能探索视频博客的魅力?
视频博客,尤其是关于旅游的视频博客,为观众提供了一种全新的探索世界的方式。通过图像和声音的结合,观众可以身临其境地体验到旅行的乐趣和发现的喜悦。而对于内容创作者来说,旅游视频博客不仅能分享他们的旅行故事,还…...
gpt批量工具,gpt批量生成文章工具
GPT批量工具在今天的数字化时代扮演着越来越重要的角色,它们通过人工智能技术,可以自动批量生成各种类型的文章,为用户提供了便利和效率。本文将介绍5款不同的GPT批量工具,并介绍一款知名的147GPT生成工具,以及另外一款…...
Python知识汇总
重要链接: matplotlib库:matplotlib — Matplotlib 3.5.1 documentation DataFrame库:DataFrame — pandas 2.2.1 documentation (pydata.org) Python Matplotlib 实现散点图、曲线图、箱状图、柱状图示例:Python Matplotlib 实…...
WEB面试题
1.基础 Web 技术: 1.1 h5 行内元素和块级元素 行内元素不会独占一行,高度和宽度由内容决定,不能单独设置宽高, 不能设置上下的margin和padding,只能设置左右的margin和padding; …...
Android Studio 六大基本布局详解
Android应用开发中,布局是至关重要的一部分,而Android Studio作为主流的开发工具,提供了多种布局方式来灵活适应不同的界面需求。在本文中,我们将深入探讨Android Studio中的六大基本布局,旨在帮助开发者更好地理解和运…...
OpCore Simplify:智能化系统定制的突破与实践
OpCore Simplify:智能化系统定制的突破与实践 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 为什么超过68%的开发者在首次配置OpenCore E…...
5分钟让老旧打印机变身AirPrint无线打印神器:cups-avahi-airprint完全指南
5分钟让老旧打印机变身AirPrint无线打印神器:cups-avahi-airprint完全指南 【免费下载链接】cups-avahi-airprint Docker image for CUPS intended as an AirPrint relay 项目地址: https://gitcode.com/gh_mirrors/cu/cups-avahi-airprint 在苹果生态日益普…...
Notepad--跨平台文本编辑器:3个简单技巧提升长期使用性能
Notepad--跨平台文本编辑器:3个简单技巧提升长期使用性能 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- N…...
VideoAgentTrek-ScreenFilter在虚拟化环境部署:VMware虚拟机安装与性能调优
VideoAgentTrek-ScreenFilter在虚拟化环境部署:VMware虚拟机安装与性能调优 最近有不少朋友在尝试部署VideoAgentTrek-ScreenFilter这类视频处理服务时,遇到了一个共同的难题:手头没有多余的物理服务器,或者想在现有工作站上隔离…...
[Python] venv、pip、解释器到底什么关系?一篇讲清环境管理
在学习 Python 的过程中,很多开发者都会遇到这样一个“经典困惑”: 为什么我用 pip install 安装了包,但代码里却 import 失败? 为什么有多个 Python? venv 到底在干嘛?它是不是“虚拟 Python”? 如果你也有这些疑问,那么这篇文章就是为你准备的。 本文将从底层逻辑出…...
基于SiameseUniNLU的文本匹配与NLI实战:开源中文推理模型部署案例
基于SiameseUniNLU的文本匹配与NLI实战:开源中文推理模型部署案例 1. 项目介绍与核心价值 SiameseUniNLU是一个创新的中文自然语言理解模型,它采用统一的架构来处理多种NLP任务。这个模型最大的特点是用一套代码就能完成文本匹配、自然语言推理、实体识…...
忍者像素绘卷部署教程:Ubuntu 22.04+PyTorch 2.1环境完整搭建步骤
忍者像素绘卷部署教程:Ubuntu 22.04PyTorch 2.1环境完整搭建步骤 1. 环境准备与系统要求 在开始部署忍者像素绘卷之前,请确保您的系统满足以下最低要求: 操作系统:Ubuntu 22.04 LTS(推荐)或更高版本显卡…...
Kandinsky-5.0-I2V-Lite-5s社区实践:在CSDN分享你的创意作品与调参心得
Kandinsky-5.0-I2V-Lite-5s社区实践:在CSDN分享你的创意作品与调参心得 1. 为什么要在CSDN分享你的AI创作 最近在星图GPU平台体验了Kandinsky-5.0-I2V-Lite-5s这个强大的图生视频模型,发现它能让静态图片"活"起来,生成各种有趣的…...
CPU fallback方案:Qwen3-4B-Instruct-2507低算力环境适配
CPU fallback方案:Qwen3-4B-Instruct-2507低算力环境适配 1. 引言:当大模型遇上小算力 想象一下,你拿到一个功能强大的新模型,参数高达40亿,支持26万字的超长上下文,指令理解和逻辑推理能力都大幅提升。你…...
寻音捉影·侠客行从零开始:基于ModelScope FunASR的私有化语音检索实践
寻音捉影侠客行:从零开始基于ModelScope FunASR的私有化语音检索实践 1. 什么是“寻音捉影侠客行”? 在信息爆炸的时代,我们每天面对大量语音内容——会议录音、课程回放、采访素材、客服对话……但想从中快速找到一句关键话,却…...
