Codeigniter REST:如果参数值包含#符号,则get请求不起作用

时间:2016-11-09 17:52:28

标签: php web-services rest codeigniter url

我正在使用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

我无法对请求进行任何更改。

1 个答案:

答案 0 :(得分:0)

从客户端,值应为URL编码 喜欢以下方式安装android

String query = URLEncoder.encode("apples #oranges", "utf-8");
String url = "http://stackoverflow.com/search?q=" + query;