我编写了一个简单的 GAE 应用程序,它对外部 API 进行 Get 调用,但我遇到了一个非常奇怪的错误:
获取http://kenyan-politicians.popit.mysociety.org/api/v0.1/persons/core_person:1290 : dial tcp: stat/etc/resolv.conf: 不允许操作
在我的 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)
最佳答案
在 App Engine 上,您必须使用 urlfetch 包创建的传输。 urlfetch客户端函数创建具有适当传输的客户端:
func createHttpClient(r *http.Request) *http.Client {
return urlfetch.Client(appengine.NewContext(r))
}
关于google-app-engine - 戈朗 : AppEngine throws operation not permitted error on Get call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29479040/