我想我在使用C#客戶端使用Google App Engine Webservice時遇到了問題。我使用Google App Engine代碼is here。這是如何在服務器上的python腳本會是什麼樣子:C#客戶端使用Google App Engine RESTful Webservice(rpc XML)
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
import logging
from StringIO import StringIO
import traceback
import xmlrpclib
from xmlrpcserver import XmlRpcServer
class Application:
def __init__(self):
pass
def getName(self,meta):
return 'example'
class XMLRpcHandler(webapp.RequestHandler):
rpcserver = None
def __init__(self):
self.rpcserver = XmlRpcServer()
app = Application()
self.rpcserver.register_class('app',app)
def post(self):
request = StringIO(self.request.body)
request.seek(0)
response = StringIO()
try:
self.rpcserver.execute(request, response, None)
except Exception, e:
logging.error('Error executing: '+str(e))
for line in traceback.format_exc().split('\n'):
logging.error(line)
finally:
response.seek(0)
rstr = response.read()
self.response.headers['Content-type'] = 'text/xml'
self.response.headers['Content-length'] = "%d"%len(rstr)
self.response.out.write(rstr)
application = webapp.WSGIApplication(
[('/xmlrpc/', XMLRpcHandler)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
的客戶端(在Python)是這樣的:
import xmlrpclib
s = xmlrpclib.Server('http://localhost:8080/xmlrpc/')
print s.app.getName()
我有使用Python客戶端檢索從谷歌應用程序的值沒有問題引擎,但我在使用C#客戶端檢索值時遇到困難。當我嘗試從網絡請求中輸入GetResponse
時,我收到的錯誤是404 method not found
。
這是我的代碼
var request = (HttpWebRequest)WebRequest.Create("http://localhost:8080/xmlrpc/app");
request.Method = "GET";
request.ContentLength = 0;
request.ContentType = "text/xml";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) //404 method not found error here.
{
}
編輯:對於終點,我已經試過:
- http://localhost:8080/xmlrpc
- http://localhost:8080/xmlrpc/
- http://localhost:8080/xmlrpc/app
- http://localhost:8080/xmlrpc/app/
但是沒有作品
我認爲這一定是該網址是錯誤的,但我不知道如何把它正確。任何想法?
您的回答有效!謝謝。我可以知道哪裏可以找到更多關於此的參考? – Graviton 2010-04-26 06:22:42
我想讀一下他們的工作方式可能會有所幫助。你也可以使用Wireshark這樣的嗅探器工具來查看當你使用更高級別的apis與服務器進行通信時,通過http \ tcp發送和接收的內容 – 2010-04-26 12:49:48