Golang:AppEngine在Get调用时抛出操作不允许的错误。

huangapple go评论68阅读模式
英文:

Golang: AppEngine throws operation not permitted error on Get call

问题

我已经写了一个简单的GAE应用程序,它对外部API进行了一个Get请求,但是我得到了一个非常奇怪的错误:

Get http://kenyan-politicians.popit.mysociety.org/api/v0.1/persons/core_person:1290: dial tcp: stat /etc/resolv.conf: operation not permitted

在我的dev_appserver上,它可以正常工作,所以我想知道可能是什么问题。我没有使用UrlFetch,而是使用了自己的包http://godoc.org/github.com/johnwesonga/go-mzalendo/mzalendo,该包使用了http.NewRequest和http.DefaultClient.Do。

由于AppEngine的限制,我将自己的客户端传递给NewClient调用:

func createHttpClient() *http.Client {
    transport := http.Transport{}

    client := &http.Client{
        Transport: &transport,
    }

    return client
}

client := createHttpClient()
c := mzalendo.NewClient(client)
英文:

I've written a simple GAE app that does a Get call to an external API but I'm getting a very strange error:

Get http://kenyan-politicians.popit.mysociety.org/api/v0.1/persons/core_person:1290: dial tcp: stat /etc/resolv.conf: operation not permitted

On my dev_appserver it works without any problems. So I'm wondering what could be the problem. I'm not using UrlFetch but my own package http://godoc.org/github.com/johnwesonga/go-mzalendo/mzalendo that uses http.NewRequest and http.DefaultClient.Do

Because of AppEngine restrictions I'm passing my own client to the NewClient call:

func createHttpClient() *http.Client {
	transport := http.Transport{}

	client := &http.Client{
		Transport: &transport,
	}

	return client
}

client := createHttpClient()
c := mzalendo.NewClient(client)

答案1

得分: 2

在App Engine上,您必须使用由urlfetch包创建的传输方式。urlfetch的Client函数可以创建一个带有适当传输方式的客户端:

func createHttpClient(r *http.Request) *http.Client {
    return urlfetch.Client(appengine.NewContext(r))
}
英文:

On App Engine, you must use a transport created by the urlfetch package. The urlfetch Client function creates a client with an appropriate transport:

func createHttpClient(r *http.Request) *http.Client {
    return urlfetch.Client(appengine.NewContext(r))
}

huangapple
  • 本文由 发表于 2015年4月7日 04:22:07
  • 转载请务必保留本文链接:https://go.coder-hub.com/29479040.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定