Post method not working on non-CRUD methods
After debugging the action method of user/login (default in services module), I found where I went wrong. In my code, I added extra array called check inside username. When I remove that array everything is going well. Here the updated code 

function my_module_service_services_resources() {        
    return array(
      'test' =&gt; array(
         'actions' =&gt; array(
            'username' =&gt; array(
              'help' =&gt; 'Checks username for uniqueness',
              'callback' =&gt; 'test_module_username_check',
              'access callback' =&gt; 'my_module_service_access',
              'access arguments' =&gt; array('view'),
              'access arguments append' =&gt; TRUE,
              'args' =&gt; array(
                array(
                  'name' =&gt; 'username',
                  'type' =&gt; 'string',
                  'description' =&gt; 'The username to check',
                  'source' =&gt; 'data',
                  'optional' =&gt; FALSE,
                ),
              ),
            ),
          ),
       ),
    );
  }


  function test_module_username_check($username) {
    return $username;
  }


  function my_module_service_access() {
    return true;
  }