gpt4 book ai didi

go - 无法使用 GO 中的网络库执行简单的 HTTP POST。我究竟做错了什么?

转载 作者:数据小太阳 更新时间:2023-10-29 03:14:40 27 4
gpt4 key购买 nike

我正在尝试使用网络库(不是 net/http)进行简单的 RAW 数据上传。我有一个简单的 php 脚本,它会吐出发送给它的任何内容。问题是 php 脚本没有收到任何东西。我做错了什么?

conn, err := net.Dial("tcp", "127.0.0.1:80" )
fmt.Fprintf(conn, "POST /handleupload.php HTTP/1.0\r\n\r\n")
n, err := conn.Write([]byte("ABCDEFGHIJ"))
status, err := bufio.NewReader(conn).ReadString('z')
fmt.Println( status )

最佳答案

因为缺少 Content-Length header ,服务器在完成请求之前等待读取到 EOF。试试这个:

conn, err := net.Dial("tcp", "127.0.0.1:80" )
fmt.Fprintf(conn, "POST /handleupload.php HTTP/1.0\r\n\r\n")
n, err := conn.Write([]byte("ABCDEFGHIJ"))
if c, ok := conn.(*net.TCPConn); ok {
c.CloseWrite()
}
status, err := bufio.NewReader(conn).ReadString('z')
fmt.Println( status )

另一种选择是编写 Content-Length 请求 header 。

关于go - 无法使用 GO 中的网络库执行简单的 HTTP POST。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39932216/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com