2012-09-27 63 views
0

我在Yii框架中將一些數據發佈到PHP服務器。 登錄工作正常。這意味着我的數據被正確地發送到服務器。Java通過accessRules方法將POST數據發送到PHP服務器

但登錄後,我的後續請求被服務器上的accessRules方法拒絕,並且即時獲取登錄頁面作爲響應。

這是PHP中的accessRules函數。 如果egineering是管理員以外的普通用戶。

public function accessRules() 
    { 
     return array(

      array('allow', // allow all users to perform 'index' and 'view' actions 
       'actions'=>array('index','view','AssignedUsers',), 
       'roles'=>array('admin', 'engineering'), 
       //'users'=>array('*'), 
      ), 
      array('allow', // allow authenticated user to perform 'create' and 'update' actions 
       'actions'=>array('create','update','userReport','userNewReport',), 
       'roles'=>array('admin'), 
       //'users'=>array('@'), 
      ), 
      array('allow', // allow admin user to perform 'admin' action 
       'actions'=>array('admin'), 
       'roles'=>array('admin', 'engineering'), 
      ), 
      array('allow', // allow admin user to perform 'delete' action 
       'actions'=>array('delete'), 
       'roles'=>array('admin', 'admin'), 
      ), 
      array('deny', // deny all users 
       'users'=>array('*'), 
      ), 
     ); 
    } 

但我被服務器拒絕。

這是JAVA請求

String content ="user=" + URLEncoder.encode(userId,encoding) + 
"&apiKey=" + URLEncoder.encode(apiKey,encoding); 

該內容與一個URL以下使用。

 connection = (HttpURLConnection)url.openConnection(); 
     connection.setRequestMethod("POST"); 
     connection.setDoInput(true); 
     connection.setDoOutput(true); 
     connection.setUseCaches (false); 
     connection.setRequestProperty("Content-length",String.valueOf (content.length())); 
     connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 

     DataOutputStream printout = new DataOutputStream (connection.getOutputStream()); 

     System.out.println(url+",Content = "+content); 

     printout.writeBytes (content); 
     printout.flush(); 
     printout.close(); 
+0

爲什麼在這個問題上的吊牌? – Robin

+0

@Robin他喜歡在編碼時跳舞。 – moonwave99

+0

因爲我使用java swing但ovbvious ... –

回答

2

發送cookies。

當您登錄時...將在服務器中創建一個會話,會話ID將作爲http響應頭上的cookie發送。

您必須從登錄響應中捕獲這些cookie,並在隨後的請求中繼續發送相同的cookie。

我只是用Google搜索,發現這個例子:How to Retrieve cookies from a response and How to send it in request

+0

非常感謝你... –

+0

好抓..... –

相關問題