翼度科技»论坛 编程开发 PHP 查看内容

PHP转Go系列 | GET 和 POST 请求的使用姿势

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
大家好,我是码农先森。
说到 HTTP 请求工具想必对我们做 Web 开发的程序员都不陌生,只要涉及到网络请求都必须使用。对于我们 PHP 程序员来说,最熟悉不过的就是 CURL 扩展,只要安装的这个扩展便可随意发起 HTTP 请求。 但在 PHP 语言中还有一个很好用的 Composer 包「guzzlehttp/guzzle」,相信大家只要做 PHP 开发的都接触过。
转到 Go 语言后,有些人也会在想 Go 中有没有这样的工具包呢?说实话,我从事 Go 语言开发这么挺久,也始终没有发现有类似 guzzle 这么好用的工具包。我想其中的原因可能是 Go 语言的官方标准库中提供了「net/http」工具,这个也能满足日常的开发需求,大家也就没有想再造轮子的兴趣了。话不多说,接下来我们开始介绍在 PHP 语言和 Go 语言中的使用姿势。
在 php_http 目录下中使用 Composer 命令安装 guzzle 包。
  1. [manongsen@root ~]$ pwd
  2. /home/manongsen/workspace/php_to_go/php_http
  3. [manongsen@root php_http]$ composer require guzzlehttp/guzzle
复制代码
在 go_http 目录下中使用 go mod init 初始化 Go 项目。
  1. [manongsen@root ~]$ pwd
  2. /home/manongsen/workspace/php_to_go/go_http
  3. [manongsen@root go_http]$ go mod init go_http
复制代码
这是初始化完成后的项目结构。
  1. [manongsen@root php_to_go]$ tree -L 2
  2. .
  3. ├── README.md
  4. ├── go_http
  5. │   ├── go.mod
  6. │   ├── go.sum
  7. │   └── main.go
  8. └── php_http
  9.     ├── composer.json
  10.     ├── composer.lock
  11.     ├── index.php
  12.     └── vendor
复制代码
这次我们主要介绍最常用的两种请求方法,分别是 GET 请求和 POST 请求。
在 PHP 中先通过 require 加载到 GuzzleHttp 类库,然后实例化 \GuzzleHttp\Client 类,并通过构造函数设置 base_uri 和 timeout 参数,再基于 $client 对象发起 GET 请求和 POST 请求,在使用过程中需要注意捕获异常情况。
[code]// php_to_go/php_http/index.php

举报 回复 使用道具