go语言的http post推送

go语言的网络功能比较强大,使用go语言实现http 协议的推送非常简单,这里做了个简单的post推送示例。

代码

package main
 
import (
    "bytes"
    "fmt"
    "io/ioutil"
	"crypto/tls"
    "net/http"
	 "flag"  
)
 
type Data struct {
   
    Name string `json:"name"`
}
 
func main() {
   
    // JSON数据
    var payloadBytes string;
	
	var  url string
	
    flag.StringVar(&payloadBytes, "c", "", "内容")
    flag.StringVar(&url, "d", "", "url")
	flag.Parse()
	
	

	//fmt.Println(payloadBytes)
	
	bytestr := []byte(payloadBytes)
	
	//在认证的时候,忽略证书校验,
	tr := &http.Transport{
   
        TLSClientConfig:    &tls.Config{
   InsecureSkipVerify: true},
    }
	
    // HTTP POST请求
    req, err := http.NewRequest("POST", url, bytes.NewBuffer(bytestr))
    if err != nil {
   
        panic(err)
    }
 
    // 设置Content-Type头部信息
    req.Header.Set("Content-Type", "application/json")
 
    // 创建客户端并发送请求
    client := &http.Client{
   Transport: tr}
    resp, err := client.Do(req)
    if err != nil {
   
        panic(err)
    }
    defer resp.Body.Close()
 
    // 获取响应结果
    body, _ := ioutil.ReadAll(resp.Body)
    responseString := string(body)
 
    // 输出响应结果
    fmt.Println(responseString)
}

测试运行:

go run main.go -d http://192.168.1.168/cgi-bin/file/post -c "{
   \"test\": 1}"
{
   "code": "200"}  --收到的应答消息

//服务端接收的信息:
method: POST
data: {
   "test": 1}

总结

以上代码里,使用flag来获取命令行传递的入参。

在认证的时候,忽略服务端证书校验,

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

这里如果不忽略,可能会报如下错误:

x509: certificate signed by unknown authority

相关推荐

  1. go语言http post

    2024-01-12 16:00:04       34 阅读
  2. WebSocket实现数据实时

    2024-01-12 16:00:04       34 阅读
  3. 处理被拒绝问题

    2024-01-12 16:00:04       9 阅读
  4. Go语言GC

    2024-01-12 16:00:04       36 阅读
  5. git 修改 commit 未信息

    2024-01-12 16:00:04       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-12 16:00:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-12 16:00:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-12 16:00:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-12 16:00:04       18 阅读

热门阅读

  1. LNMP平台对接redis服务

    2024-01-12 16:00:04       25 阅读
  2. 力扣(leetcode)第541题反转字符串II(Python)

    2024-01-12 16:00:04       35 阅读
  3. [BUG] docker: unknown server OS: .

    2024-01-12 16:00:04       31 阅读
  4. 力扣labuladong一刷day59天动态规划

    2024-01-12 16:00:04       25 阅读
  5. SpringSecurity入门demo(四)授权

    2024-01-12 16:00:04       37 阅读
  6. AttributeError: ‘str‘ object has no attribute ‘spilt‘

    2024-01-12 16:00:04       26 阅读