2015-04-06 47 views
1

操作不允许的错误,我写了一个简单GAE的应用程序,它get调用外部API,但我发现一个很奇怪的错误:Golang:AppEngine上抛出的GET调用

获取http://kenyan-politicians.popit.mysociety.org/api/v0.1/persons/core_person:1290:拨号tcp:stat /etc/resolv.conf:不允许操作

在我的dev_appserver上它没有任何问题。所以我想知道可能是什么问题。我没有使用网址抓取,但我自己的包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) 

回答

2

在App Engine,您必须使用由urlfetch包创建的传输。 urlfetch客户端函数创建具有适当传输的客户端:

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