3

Bitcoin サーバーへの HTTP JSON RPC 呼び出しを行う Go Google App Engine アプリケーションを作成しています。コードが dev_appserver で正しく動作するようになりましたが、GAE にデプロイするとコードが動作しないようです。私はGitHubで利用可能なライブラリを使用しており、次のように呼び出しています。

func GetInfo(id interface{})(map[string]interface{}, os.Error){
    resp, err:=httpjsonrpc.Call("user:pass@111.1.1.1:18332", "getinfo", id, nil)
    if err!=nil{
        log.Println(err)
        return resp, err
    }
    return resp, err
}

呼び出されたときに次のように指定する必要があります。

map[proxy: keypoololdest:1.327368259e+09 blocks:45385 keypoolsize:101 connections:11 version:50200 difficulty:8.88353262 generate:false hashespersec:0 paytxfee:0 balance:0 genproclimit:-1 testnet:true errors:]

しかし、GAE では関数を呼び出すとエラーが発生するようです。コードのどの部分が dev_appserver で動作し、GAE で失敗する可能性がありますか?

4

1 に答える 1

3

urlfetch documentationurlfetch.Transportで説明されているように、本番環境で HTTP 呼び出しを行うために使用する必要があります。

代わり

resp, err := http.Post(address,
    "application/json", strings.NewReader(string(data)))

あなたがしているはずです:

client := urlfetch.Client(context)
resp, error := client.Post(address,
    "application/json", strings.NewReader(string(data)))

実装でわかるように、は、を使用urlfetch.Clientする を構築するための単なるショートカットです。http.Clienturlfetch.Transport

于 2012-01-31T12:16:10.700 に答える