Java将POST数据发送到被accessRules方法阻止的PHP服务器



我正在Yii框架中将一些数据POST到PHP服务器。登录工作正常。这意味着我的数据被预先发送到服务器。

但登录后,我的后续请求被服务器上的CCD_ 1方法拒绝,我得到了登录页面作为响应。

这是PHP中的accessRules函数。其中注册的是除管理员之外的普通用户。

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 ();

发送cookie。

当您登录时。。。将在服务器中创建一个会话,会话id将作为cookie发送到http响应头上。

您必须从登录响应中捕获这些cookie,并在后续请求中继续发送这些cookie。

我刚刚在谷歌上搜索了一下,发现了这个例子:如何从响应中检索cookie以及如何在请求中发送它

最新更新