2012-08-13 72 views
1

当我从我的代码中调用另一个Web服务时,我得到一个权限被拒绝的错误。在我的服务器端程序去处理程序代码的权限拒绝错误从外部引擎呼叫外部服务去

部分:

client := http.Client{} 
if resp, err := client.Get("http://api.wipmania.com/" + r.RemoteAddr); err != nil { 
    c.Errorf("Error getting location from ip: %s", err.Error()) 
} 

从日志:

Error getting location from ip: Get http://api.wipmania.com/30.30.30.30: permission denied 

我看到了类似的QN here。仍然无法弄清楚。你能告诉我什么是正确的方法来做到这一点,如果有任何权限必须在appengine控制台上设置?

回答

2

App Engine应用程序可以与其他应用程序进行通信,并可以通过获取URL访问网络上的其他资源。应用程序可以使用URL Fetch service发出HTTP和HTTPS请求并接收响应。

尝试:

import (
    "fmt" 
    "net/http" 

    "appengine" 
    "appengine/urlfetch" 
) 

func handler(w http.ResponseWriter, r *http.Request) { 
    c := appengine.NewContext(r) 
    client := urlfetch.Client(c) 
    if resp, err := client.Get("http://api.wipmania.com/" + r.RemoteAddr); err != nil { 
     c.Errorf("Error getting location from ip: %s", err.Error()) 
    } 
    // ... 
} 
+0

工程。谢谢。 – sathishvj 2012-08-13 13:52:30