英文:
simple client on golang returns "net/http: HTTP/1.x transport connection broken: unexpected EOF"
问题
你的客户端和服务器有什么问题?
根据你提供的信息,你的客户端代码似乎没有问题。它使用http.Get
函数发送GET请求到http://localhost:8080/health
。然后,它打印出任何错误。
然而,你的服务器代码可能存在问题。根据你提供的链接,服务器代码使用Python编写。错误消息表明,在客户端尝试建立HTTP/1.x传输连接时出现了意外的EOF(文件结束)。
可能的原因是服务器在处理请求时发生了错误,导致连接被意外关闭。你可以检查服务器代码以查找潜在的问题。你还可以尝试使用其他HTTP客户端(例如浏览器或其他工具)来发送请求,以确定问题是否出现在客户端代码中。
希望这可以帮助你解决问题!
英文:
I use simple client on golang
package main
import (
"fmt"
"net/http"
)
func main() {
_, err := http.Get("http://localhost:8080/health")
fmt.Println(err)
}
and simple http server on python https://gist.github.com/huyng/814831
but I got an error
Get "http://localhost:8080/health": net/http: HTTP/1.x transport connection broken: unexpected EOF
What is wrong with my client or server?
答案1
得分: 1
...net/http: HTTP/1.x传输连接中断:意外的EOF
我的客户端或服务器出了什么问题?
答案可以在你用于服务器的代码下面的6年前的评论中找到:
不错。然而,有一个小的HTTP协议错误,因为没有self.end_headers(),所以当提供给挑剔的客户端(haproxy)时,响应是格式错误的。;)
因此,不要只是从互联网上复制代码而不理解它的作用。特别是,如果已经有一个明确说明该代码有问题的注释。
英文:
> ...net/http: HTTP/1.x transport connection broken: unexpected EOF
> What is wrong with my client or server?
The answer lies in the 6 year old comment immediately below the code you use for the server:
> Nice. A minor HTTP protocol glitch though, as there's no self.end_headers() so the response is malformed when served to picky clients (haproxy).
Thus, don't just take code from somewhere on the internet w/o understanding what it does. Especially, if there is already an explicitly comment saying that the code is broken
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论