去AppEngine remote_api示例不起作用

Are the Go AppEngine samples up to date?

I'm running into issues getting example/remote_api/datastore_info.go working for my test AppEngine running on localhost.

I've changed the client.PostForm from:

resp, err := client.PostForm("https://www.google.com/accounts/ClientLogin", v)

to:

resp, err := client.PostForm("http://localhost:35058/_ah/remote_api", v)

(35058 is the port reported for api_server during startup).

I've tried both 1.9.3 and latest 1.9.4 versions.

The api server reports:

ERROR    2014-05-06 20:57:56,378 api_server.py:215] Exception while handling 
Traceback (most recent call last):
  File "/root/go_appengine/google/appengine/tools/devappserver2/api_server.py", line 194, in _handle_POST
    request.ParseFromString(wsgi_input)
  File "/root/go_appengine/google/net/proto/ProtocolBuffer.py", line 88, in ParseFromString
    self.MergeFromString(s)
  File "/root/go_appengine/google/net/proto/ProtocolBuffer.py", line 95, in MergeFromString
    self.MergePartialFromString(s)
  File "/root/go_appengine/google/net/proto/ProtocolBuffer.py", line 109, in MergePartialFromString
    self.TryMerge(d)
  File "/root/go_appengine/google/appengine/ext/remote_api/remote_api_pb.py", line 210, in TryMerge
    d.skipData(tt)
  File "/root/go_appengine/google/net/proto/ProtocolBuffer.py", line 529, in skipData
    self.skipData(t)
  File "/root/go_appengine/google/net/proto/ProtocolBuffer.py", line 529, in skipData
    self.skipData(t)
  File "/root/go_appengine/google/net/proto/ProtocolBuffer.py", line 537, in skipData
    raise ProtocolBufferDecodeError, "corrupted"
ProtocolBufferDecodeError: corrupted

There were some bug fixes in 1.9.6; can you try with the latest SDK?

I've been exactly the same problem in whatever call to my development server

Traceback (most recent call last):
  File "/home/mike/go_appengine/google/appengine/tools/devappserver2/api_server.py", line 238, in _handle_POST
    request.ParseFromString(wsgi_input)
  File "/home/mike/go_appengine/google/net/proto/ProtocolBuffer.py", line 140, in ParseFromString
    self.MergeFromString(s)
  File "/home/mike/go_appengine/google/net/proto/ProtocolBuffer.py", line 152, in MergeFromString
    self.MergePartialFromString(s)
  File "/home/mike/go_appengine/google/net/proto/ProtocolBuffer.py", line 168, in MergePartialFromString
    self.TryMerge(d)
  File "/home/mike/go_appengine/google/appengine/ext/remote_api/remote_api_pb.py", line 210, in TryMerge
    d.skipData(tt)
  File "/home/mike/go_appengine/google/net/proto/ProtocolBuffer.py", line 677, in skipData
    raise ProtocolBufferDecodeError, "corrupted"
ProtocolBufferDecodeError: corrupted

I've go version go1.4.2 (appengine-1.9.24) linux/amd64

Problem was I'm using the IP for "API" instead the IP for default module

INFO     2015-08-13 19:42:03,901 devappserver2.py:763] Skipping SDK update check.
INFO     2015-08-13 19:42:03,947 api_server.py:205] Starting API server at: http://localhost:60852
INFO     2015-08-13 19:42:03,971 dispatcher.py:197] Starting module "default" running at: http://localhost:49333
INFO     2015-08-13 19:42:03,972 admin_server.py:118] Starting admin server at: http://localhost:8000

You must use module host/por to place calls to your go application; API ip is for remote api, I think.