2012-09-27 41 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

好抓..... –

相关问题