在Google App Engine上使用Python调用RESTful API

时间:2014-09-03 13:58:57

标签: django google-app-engine rest python-2.7

调用RESTful webservice时遇到了一些问题 我现在正在google app引擎上运行Django 1.5项目 我在python中使用httplib来调用RESTful Web服务 所有方法(PUT,GET,DELETE,POST)都可以在我的本地机器上运行(python 2.7.5,Django 1.5)。
但是,GAE上的行为发生了变化...... PUT(用于存储用户在网站上编辑其信息的数据。),POST方法运行良好 GET方法有时无法从webservice服务器获取最新结果(不是google数据存储区,数据存储在其他数据库服务器中,我使用GET方法从该服务器获取数据)。
DELETE方法并不完全适用于GAE 这是我的代码:

import httplib

args = ""
headers = {"Accept":"application/json"}
conn = httplib.HTTPConnection(IP, 8080)
try:
    conn.request("DELETE", Some_API_Method_Url, args, headers)
    response = conn.getresponse()
    res = response.read()

我无法弄清楚为什么会这样,希望有人可以帮助我:(
提前谢谢!

更新:
我刚刚找到了为什么DELETE方法不能基于此link工作 我使用以下代码向我的Django后端发送一个ajax请求,其中我的js文件中删除了类型:

$.ajax({
  type:'DELETE',
  url:'some_url',
  data:JSON.stringify({'key':'value'}),
  contentType: 'application/json; charset=utf-8',
  dataType: "text",
  success: function(data){...},
  error: function(data){...}
});

似乎appspot不允许带有正文(数据)的DELETE请求 所以,我将AJAX请求的类型更改为POST,它可以工作......

0 个答案:

没有答案