2011-12-27 67 views
0

我的HttpGet請求正在調用我的indexAction,而不是getAction。這是怎麼回事?Android HttpGet正在請求indexAction

這裏是我的代碼:

public function getAction() { 

    $id = $this->_getParam('id'); 

    if(!$id) 
    { 
     $this->getResponse() 
      ->setHttpResponseCode(400) 
      ->setBody("no id"); 
     return; 
    } 

    try 
    { 
     $q = Doctrine_Query::create() 
      ->from('Milotin_Model_Locations l') 
      ->where ('l.id=?', $id); 

     $result = $q->fetchArray(); 

     if(count($result) == 1) 
     { 
      $this->getResponse() 
       ->setHttpResponseCode(200) 
       ->setBody(json_encode($result)); 
     } 
    } 
    catch(Exception $e) 
    { 
     $this->getResponse() 
      ->setHttpResponseCode(500) 
      ->setBody($e->getMessage()); 
    } 
} 



    public function indexAction() { 
} 

這裏是我的代碼在安卓

private static void getLoc() 
{ 
    final HttpResponse response; 

    final HttpGet getRequest = new HttpGet(LOCATION_URI + "?geolat=" + geoLat + "&geolong=" + geoLong); 

    try { 
     response = mHttpClient.execute(getRequest); 

     if(response.getStatusLine().getStatusCode() == 200) 
     { 
      //do something 
     } 

    } catch (ClientProtocolException e) { 
     Log.e(TAG, e.getMessage()); 
     e.printStackTrace(); 
    } catch (IOException e) { 
     Log.e(TAG, e.getMessage()); 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     Log.e(TAG, e.getMessage()); 
     e.printStackTrace(); 
    } 

} 

我HttpPost工作正常(它調用postAction),任何解釋?

謝謝。

+0

你想要做什麼?究竟是什麼問題?清楚地提及它。 – 2011-12-27 06:44:02

+0

我正試圖調用一個HttpGet,但它被重定向到indexAction,而不是getAction。 – VHanded 2011-12-27 06:47:17

回答

0

我找到了答案。這實際上是Zend Framework的行爲。如果在GET請求中找不到'id'元素,它將重定向到indexAction,而不是getAction。

實施例:

'GET本地主機/學生將重定向到的indexAction,而 'GET本地主機/學生/ 23' 將重定向到的getAction。 (23是id)

在Zend Framework中找到它:初學者指南,由Vikram Vaswani撰寫。