草庐IT

HTTP访问

全部标签

google-app-engine - 如何使用 github.com/golang/appengine 访问 Datastore?

我正在使用github.com/golang/appengine及其关联的“数据存储”。我希望这个包能让我在普通的Go网站中使用Datastore。不幸的是,我的c:=appengine.NewContext(rq)一直给我一个“NewContextpassedanunknownhttp.Request”错误。我的app.yaml包含application:sdklessdatastoremusicversion:1runtime:goapi_version:go1handlers:-url:/.*script:_go_appvm:truemanual_scaling:instance

go - 在 Go 中是否可以访问存储在客户端本地存储中的 JWT token ?

我已经在后端实现了一个SPA应用程序,并且使用Angular可以很容易地授权存储在浏览器本地存储中的token,但在前端我使用服务器来呈现html。接下来,在来自服务器的HTTP请求处理程序上,我如何获取浏览器的本地存储/session存储来检索token、验证它并在响应中呈现允许的内容?这甚至可能还是我必须使用session?我在想,也许http.client有一些我看不到的方法,这可以帮助完成工作?编辑如果不可能,我发现了这个:http://www.gorillatoolkit.org/pkg/securecookie-我试着用谷歌搜索了一下,但我想绝对确定这个hmac验证使这个解

http - Go net listener 关闭及常规处理

我正在开始例行程序并在网络监听器(HTTP)上进行监听。我想关闭监听器,关闭例程并开始一个新例程,然后重新启动监听器。当我关闭监听器时,一切都乱套了。(listener是全局的)listener,_=net.Listen(CONN_TYPE,CONN_HOST+":"+CONN_PORT)goPassThrough()在哪里funcPassThrough(){verbose:=flag.Bool("v",false,"shouldeveryproxyrequestbeloggedtostdout")flag.Parse()proxy:=goproxy.NewProxyHttpServe

linux - 从 TCP 连接获取 HTTP header

我正在用golang为Linux编写类似应用程序的代理程序。该应用程序在执行时将监听所有TCP连接并将它们重定向到代理服务器地址。在应用程序之间还向HTTPheader添加了“Proxy-Authorisation:Basic...”header。当我看到TCPheader时,我无法获得HTTPheader。我哪里出错了或如何提取HTTP数据?还有其他方法可以实现吗? 最佳答案 我也是golang的新手,但就从tcp套接字获取HTTP数据而言,下面的代码对我有用。packagemainimport"net"import"fmt"im

json - 在 GoLang 中,如何获取 HandleFunc() 函数以将 json 解析为函数外部可访问的变量

我正在尝试使用golang创建一个服务,它将在一个端口上监听包含json的发布请求,并想解析出json的用户名和密码字段并将它们保存为变量以在函数外部使用对ActiveDirectory进行身份验证。我正在使用HandleFunc()函数,但无法确定如何访问函数外部的变量。我尝试创建一个返回,但它不会建立。如何正确创建变量然后在函数外部使用它们?packagemainimport("gopkg.in/ldap.v2""fmt""net/http""os""encoding/json""log""crypto/tls""html")typeMessagestruct{Userstring

http - Go http客户端不遵循重定向

我有一个检查url的函数:funcCheckurl(urlstring){client:=&http.Client{}req,err:=http.NewRequest("GET",url,nil)resp,err:=client.Get(url)错误变量:意外的EOF在tcpdump中我看到重定向和连接关闭:15:53:41.510722IP(tos0x0,ttl248,id18315,offset0,flags[none],protoTCP(6),length123)XXX.XXX.XXX.XXX.80>XXX.XXX.XXX.XXX.53618:Flags[F.],cksum0xb

golang http 服务器通过套接字发送 r.URL.Path

我有一个http服务器,我想使用套接字将r.URL.Path文本发送到客户端我得到一个错误:undefined:conninconn.Write这是因为conn是在另一个函数中定义的我尝试过的:packagemainimport("net""io""net/http")ln,_:=net.Listen("tcp",":8081")conn,_:=ln.Accept()funchello(whttp.ResponseWriter,r*http.Request){io.WriteString(w,"Helloworld!")conn.Write([]byte(r.URL.Path+"\n"

http - TCP 是同一主机中 Go 程序之间通信的最佳方法吗?

假设我有两个独立的Go程序在我的本地主机上运行,​​就性能而言,TCP是否是在两个程序之间传输数据的最佳方法? 最佳答案 简短的回答是否定的。TCP/IP堆栈很慢,尤其是TCP部分。因此,就性能而言,您最好使用本地进程间通信方法,例如应用程序或Unix套接字之间的共享内存。如果您必须使用网络堆栈进行通信(例如,您计划在主机之间移动应用程序),那么UDP或原始套接字是性能方面的最佳选择。只有当你:必须使用网络并且您需要一个可靠的通信channel,那么TCP是一个不错的选择。因此,只需浏览您的要求并确定它是否是最适合您的方法。

go - 访问内存位置数组中的数据

我正在尝试在geth中解析以下类型数组以“查看内部”并获取信息,但无法弄清楚如何去做。txs[]*types.Transaction此类型在geth的其他地方声明为typeTransactionstruct{datatxdatahashatomic.Valuesizeatomic.Valuefromatomic.Value}我正在尝试使用以下循环访问数据,但我似乎无法访问这些值中的任何一个。for_,tx:=range*txs{fmt.Println(fmt.Sprintf("transactionsinthisblock-hash:%sanddata:",tx.hash))}谁能指出

go - 我应该在包级别但在 http 处理程序之外声明变量吗?

我使用gingonic作为HTTP框架,我需要像这样用共享变量对一些路径进行分组:ur:=r.Group("/")ur.Use(package.Prepare){ur.GET("/",package.Home)}在Prepare处理程序中,我将包变量声明为package.tplPath因为我希望所有子路由都可以访问这个变量,而不是在每个http处理程序中重写代码。vartplPath=""funcPrepare(c*gin.Context){_,filename,_,_:=runtime.Caller(0)s:=helper.RelativeFilePath(filename)tplP