2012-01-12 17 views
0

我試圖從使用Django構建的頁面向App Engine服務器發送GET請求。我在Django部分中設置參數,但在App Engine中參數值爲空。App引擎Python沒有從Django接收GET參數值

我已經在Django端記錄了它的值,並且參數值沒問題。

這裏是我的Django的代碼:

try: 
     username = request.session['username'] 
     params = urllib.urlencode('user', username) 
     headers = {"Content-type":"application/x-www-form-urlencoded", "Accept":"text/plain"} 

     conn = httplib.HTTPConnection(connections_strings.auth) 
     conn.request("GET", connections_strings.auth, params, headers) 
     response = conn.getresponse() 
     jsonString = response.read() 
     return render_to_response('home/index.html', locals(), context_instance=RequestContext(request)) 

這裏是App Engine的代碼:

def get(self): 
     username = self.request.get('user') # Get the username parameter 
     query_user = UserEntity.all() 
     query_user.filter('username = ', username) 
     user_data = [] 
     for user in query_user: 
      record = { //Create the JSON.. } 
      user_data.append(record) 

     self.response.headers['Content-Type'] = 'application/json' 
     self.response.out.write(simplejson.dumps(user_data)) 

在App Engine上get(self)方法被調用,我已經把那裏有一條日誌消息並已打印。

所以,發生的事情是,在App Engine方面,self.request.get('user')什麼也沒有返回。這很奇怪,我已經從移動端發出GET請求,並且它完全適用於這種相同的方法。

任何想法??

謝謝!

回答

3

在HTTP GET方法,查詢參數傳遞的網址:所以做這個

HTTPConnection.request(method, url[, body[, headers]]) 

conn.request("GET", connections_strings.auth, params, headers) 

http://example.com?user=foo 

request()方法是這樣定義的

您已經在請求正文中發送了參數。

試試這個:

selector = '{}?{}'.format(connections_strings.auth, params) 
conn.request("GET", selector, headers=headers)