golang通过http访问外部网址

这篇具有很好参考价值的文章主要介绍了golang通过http访问外部网址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

不同项目之前,通过http访问,进行数据沟通

先设定一个接口,确认外部能访问到

PHP写一个接口

public function ceshi_return()
{
   $data = $this->request->param();
   $id = $data['id'];
   $res = Db::name('user')->field('id,status,price,name')->where(['id'=>$id])->find();
   $this->ajaxReturn($res);
}

返回效果:

golang通过http访问外部网址,golang,golang,http,开发语言

 get方式访问外部的接口

封装的函数

package utils
func GetRequest(url string) string {

	client := &http.Client{Timeout: 5 * time.Second}
	resp, err := client.Get(url)

	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	result, _ := ioutil.ReadAll(resp.Body)
	return string(result)
}

上层访问接口

因为要将请求到的数据,进行处理,所以需要提前定义一个结构体来接受处理这些数据

type GetData struct {
	Id     int    `json:"id"`
	Status int    `json:"status"`
	Price  int    `json:"price"`
	Name   string `json:"name"`
}


func GetUserData(c *gin.Context) {
	id := c.PostForm("id")
	url := "https://www.xxxx.com/admin/login/ceshi_return?id=" + id
	data := utils.GetRequest(url)

	d := []byte(data)
	var g GetData
	_ = json.Unmarshal(d, &g)

	c.JSON(http.StatusOK, gin.H{
		"code": 200,
		"msg":  "查询成功",
		"data": g,
	})

}

效果

golang通过http访问外部网址,golang,golang,http,开发语言

 Post方式请求外部接口

封装函数

这里的访问方式,我写死了,设置成了json格式,有其他的方式,可以根据自己需求修改

package utils
func PostRequest(url string, data interface{}) string {

	client := &http.Client{Timeout: 5 * time.Second}
	jsonStr, _ := json.Marshal(data)
	resp, err := client.Post(url, "application/json", bytes.NewBuffer(jsonStr))
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	result, _ := ioutil.ReadAll(resp.Body)
	return string(result)
}

访问函数

//采用结构体的方式,来装要发送的数据
type PostData struct {
	Id int `json:"id"`
}

// 访问外部地址
func PostUserData(c *gin.Context) {
	id := c.PostForm("id")
	var p PostData
	p.Id, _ = strconv.Atoi(id)
	url := "https://www.xxxx.com/admin/login/ceshi_return"
	data := utils.PostRequest(url, p)
	fmt.Print(data)
	d := []byte(data)
	var g GetData
	_ = json.Unmarshal(d, &g)

	c.JSON(http.StatusOK, gin.H{
		"code": 200,
		"msg":  "查询成功",
		"data": g,
	})

}

效果

golang通过http访问外部网址,golang,golang,http,开发语言文章来源地址https://www.toymoban.com/news/detail-835307.html

到了这里,关于golang通过http访问外部网址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何通过内网穿透实现外部网络对Spring Boot服务端接口的HTTP监听和调试?

    前后端分离项目中,在调用接口调试时候,我们可以通过cpolar内网穿透将本地服务端接口模拟公共网络环境远程调用调试,本次教程我们以Java服务端接口为例。 JDK1.8 IDEA SpringBoot Maven Tomcat9.0 Postman 搭建一个springboot服务的项目,编写一个接口,为了更好直观看到,这里创建一个p

    2024年02月10日
    浏览(54)
  • golang 通用的 grpc http 基础开发框架

    golang 通用的 grpc http 基础开发框架 仓库地址: https://github.com/webws/go-moda 仓库一直在更新,欢迎大家吐槽和指点 transport: 集成 http(echo、gin)和 grpc。 tracing: openTelemetry 实现微务链路追踪 pprof: 分析性能 config: 通用的配置文件读取模块,支持 toml、yaml 和 json 格式。 logger: 日志系统

    2024年02月10日
    浏览(39)
  • Nginx学习1:通过访问路径代理不同二级http服务

    通过nginx实现代理,前端HTML5只需要对接一个http端口,即可与后台多个二级http服务进行对接,方法是在nginx中通过不同的路径代理不同的二级http服务。 静态页面依然使用nginx一级服务器返回。 配置nginx,访问路径为button1时转发到3002端口,访问路径为button2时转发到3003端口。

    2024年02月12日
    浏览(43)
  • Tomcat配置项目直接通过http://ip:port访问

    遇到一个需求:因为这个域名下只部署了这一个项目,用户想直接通过域名来访问这个项目而不是加一层项目地址。 修改war文件名 : 将你的war文件重命名为 ROOT.war 。部署到 Tomcat 的 webapps 目录即可。 如果已经存在ROOT文件夹,删除它,以便 Tomcat 自动加解压缩并部署 ROOT.wa

    2024年01月21日
    浏览(43)
  • 记录hutool http通过代理模式proxy访问外面的链接

    效果: 代码:  如何获取代理端口:  

    2024年02月10日
    浏览(61)
  • abbitmq启动访问不了http://localhost:15672 通过修改服务登录admin

    abbitmq默认的对Administration授权,而我的用户不是默认的Administration,所以后来打开服务,找到rabbitmq服务,属性,登陆,将本地系统账户修改为此账户,修改完成之后再重启服务,这时候浏览器就可以访问了。

    2024年02月13日
    浏览(38)
  • SpringBoot服务启动了,但通过http://ip:port/不能访问 (windows、linux)

    无法启动首先确认一下对应的端口有没有开放。正常服务器上需要开启防火墙的情况下,需要通过开放对应端口来实现项目访问。 systemctl status firewalld   #查询防火墙状态 firewall-cmd --query-port=1986/tcp  #查询某端口的TCP协议是否开放 防火墙处于Active状态即表示防火墙是开启

    2024年02月16日
    浏览(32)
  • 通过Python行命令搭建HTTP服务器结合内网穿透实现外网访问

    Python作为热度比较高的编程语言,其语法简单且语句清晰,而且python有良好的兼容性,可以轻松的和其他编程语言((比如C/C++))建立的模块连接起来,而且python丰富强大的库,经过封装可以轻松调用,因此深受欢迎。 今天我们就尝试用python,建立一个简单的http服务器,用来

    2024年02月09日
    浏览(53)
  • 通过nginx的upstream配置域名进行http/htts的访问最佳实践方案(406/404问题解决)

    ​ 最近,开发部门有一个访问需求,被访问方给了我们两个https的域名访问接口,这里假设为: ​ 这两个域名解析出来的地址和接口信息都是一样的,但是根据要求,需要将两个域名访问接口作为主备的方式进行配置,在https://aaa.target.com/mytarget/login/出现异常不能使用的时候

    2024年01月19日
    浏览(46)
  • 【Golang】go编程语言适合哪些项目开发?

    前言 在当今数字化时代,软件开发已成为各行各业的核心需求之一。 而选择适合的编程语言对于项目的成功开发至关重要。 本文将重点探讨Go编程语言适合哪些项目开发,以帮助读者在选择合适的编程语言时做出明智的决策。 Go 编程语言适合哪些项目开发? Go是由Google开发

    2024年02月04日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包