草庐IT

HTTP访问

全部标签

postgresql - GoLang 服务无法使用 docker compose 访问 Postgres

我有一个用Go编写的HTML服务。它使用Postgres,但是当使用dockercompose将它们组合在一起时,我得到“dialtcp0.0.0.0:5432:connect:connectionrefused”在仅使用docker并引用Postgres的运行图像构建启动服务时工作来自go的调用片段psqlInfo:=fmt.Sprintf("host=%sport=%suser=%spassword=%sdbname=%ssslmode=disable",host,port,user,password,dbname)db,err:=sql.Open("postgres",psqlI

go - 无法使用默认服务帐户和谷歌云库从谷歌 Kubernetes 引擎访问谷歌云存储

我编写了一个应用程序,它具有使用golang通过GoogleKubernetesEngine上传图像的功能。其他一切正常,但当我尝试将图像写入GoogleCloudStorage时,我一直遇到问题。这是我在golang中实际使用googlestorageapi的代码:funcputImage(imageURLstring,imagemultipart.File)bool{fmt.Println("Puttingintoimagelocation:"+imageURL)contextBackground:=context.Background()storageClient,err:=st

api - 如何从 HTTP 处理程序中的 URL 获取参数

我正在开发一个endpoint/crypto/rates接受两个货币“符号”作为输入的网络服务应用程序。web服务应该在数据库中搜索这些字符之间的货币兑换数据,如果数据库中没有值,或者时间戳值与当前值相差超过1分钟,则向服务API发出请求:https://min-api.cryptocompare.com/documentation所以,我创建了结构和go-chi路由器。但我不知道如何构建一个工作处理程序来从URL获取参数,例如:https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USDpackagemainimpor

go - http put 服务器处理大文件

请考虑这个codepostedhere,它处理httpPUT请求。它工作正常,有小文件:$curl-vhttp://192.168.1.10:9193/-Tred.tx*Trying192.168.1.10...*Connectedto192.168.1.10(192.168.1.10)port9193(#0)>PUT/red.txHTTP/1.1>Host:192.168.1.10:9193>User-Agent:curl/7.47.0>Accept:*/*>Content-Length:19697247>Expect:100-continue>但是-向它发送一个大于1G大小的大文件

regex - 我如何在 Go 中使用/访问捕获组?

这个问题在这里已经有了答案:RegexwithreplaceinGolang(1个回答)关闭3年前。我有一个日期格式为dd.mm.yyyy的文件(例如31.12.2019)。我想转换成yyyy-mm-dd格式(例如2019-12-31)。在Notepad++中,我可以使用反向引用对这些字符串进行搜索和替换:搜索:(\d{2}).(\d{2}).(\d{4})替换:\3-\2-\1我如何使用Go来做到这一点?

go - 在反向代理中多次重复 http.Request

我正在实现http.RoundTripper在Go中,作为httputil.ReverseProxy的一部分实现。我需要缓冲传入的请求,并根据从后端获得的响应重复多次。为此,我使用request.Write和http.ReadRequest.(我其实不确定这是否是个好主意,如果有更好的方法,我很感兴趣。)使用http.ReadRequest反序列化来自[]byte的请求后并使用http.DefaultTransport的往返程序重复它,我在我的stderr中打印了这个:2019/08/0114:35:51http:proxyerror:unsupportedprotocolscheme

go - 是什么让 http.server 使用 HTTP/2?

我制作了两个Go程序,每个程序都尝试通过TLS向对方发送请求。换句话说,两个程序既充当客户端又充当服务器。但是,第一个客户端主机尝试使用HTTP/1.1连接到服务器主机,而服务器主机使用HTTP/2进行监听,这会导致错误。程序Aclient:=&http.Client{Transport:&http.Transport{TLSClientConfig:tlsConfig,},}mux:=httprouter.New()mux.GET("/test",test)serverTLS:=&http.Server{Addr:"127.0.0.1:8081",Handler:mux,TLSCon

performance - Go - 在用于负载测试的高性能 http 客户端中,如何阻止/忽略所有 cookie?

我正在为我的公司创建工具来对我们的系统进行负载测试。我目前有用Python编写的工具,但我正在探索使用Go的选项,希望提高效率和性能,因为我们需要同时生成数百万用户(每个盒子有数千个,有很多盒子)并且每一点都很重要。我的用户主要对我们的系统进行http调用,我需要一个非常轻量级和高效的http客户端。对于我们的Python工具,以前的员工有一些功能手动处理和重用套接字并完全忽略cookie。虽然我是Go的新手,但到目前为止我已经比较了多个Go网络实现,我对CPU和网络使用情况很满意,所以我认为我还不需要手动管理套接字,但是RAM使用率比我们的Python解决方案高出数倍。我怀疑这是由于

go - 无法在 http 请求中设置 POST 正文

这不是设置POST请求正文的正确方法吗?data:=url.Values{}data.Set("url","https://www.google.com/")client:=http.Client{}r,err:=http.NewRequest(http.MethodPost,apiURL,strings.NewReader(data.Encode()))下面的代码在执行时表明POST请求中没有发送urlparam。packagemainimport("fmt""io/ioutil""net/http""net/url""strings")funcdoAPICall(){//curl-

go - 如何从 golang 中的字段类型内部访问结构标记

我想知道是否可以以及如何从该结构中使用的自定义类型访问结构标记集。typeOutstruct{CCustom`format:"asd"`}typeCustomstruct{}func(cCustom)GetTag()string{//somehowgetaccessto`format:"asd"`}我的目标是能够为解码/编码定义时间格式,并处理由structtag参数化的实际时间解码。谢谢 最佳答案 那是不可能的。标签属于结构字段,而不是类型。所以C类型无法知道使用了什么标签。另外,如果出现以下情况,它将如何工作:typeAstru