我正在使用CodeIgniter REST库。 我正在使用get请求从移动应用程序接受值。在对该值执行操作后,我会相应地发送响应。 它工作正常。 但如果参数中的值包含#符号,我就无法在#之后获取参数,并导致错误的响应。
有人可以指导我解决这个问题吗?
以下是代码:
public function loginverification_get(){
if(isset($_REQUEST['username']))
$uname=$this->get('username');
else
$uname='';
if(isset($_REQUEST['password']))
$password=trim($this->get('password'));
else
$password='';
if(isset($_REQUEST['user_type']))
$user_type=$this->get('user_type');
else
$user_type='';
if(isset($_REQUEST['spiriva_respi']))
$appcontent=$this->get('spiriva_respi');
else
$appcontent='';
$where='';
/////////////////
SOME CODE
///////////////////
if (!empty($user))
{
$user['status'] = true;
$user['message'] = 'Successfully logged in!';
$this->set_response($user, REST_Controller::HTTP_OK);
}
else
{
$this->set_response(array(
'status' => false,
'message' => 'Login information is not valid!'
), REST_Controller::HTTP_OK);
}
}/*if($uname!='' && $user_type!='')//&& $password!='' */
else{
$this->set_response(array(
'status' => false,
'message' => 'UserName and UserType mandatory'
), REST_Controller::HTTP_OK);
}
}/// login verification
并且请求是: http://domain_name/api/controllername/loginverification?username=u_name&password=y#w6737@ $%&安培; ^%安培; USER_TYPE = ABCD
我无法对请求进行任何更改。
答案 0 :(得分:0)
从客户端,值应为URL编码 喜欢以下方式安装android
String query = URLEncoder.encode("apples #oranges", "utf-8");
String url = "http://stackoverflow.com/search?q=" + query;