I can't get my drupal_http_request to go to the correct function I am working with Drupal 7, I have a hook_services_resources() set up: 

function Api_services_resources() {
  $api = array(
    'applicant' =&gt; array(
      'operations' =&gt; array(
        'retrieve' =&gt; array(
          'help' =&gt; 'Updates applicants',
          'callback' =&gt; '_Api_retrieve',
          'access callback' =&gt; 'user_access',
          'access arguments' =&gt; array('access content'),
          'access arguments append' =&gt; FALSE,
          'args' =&gt; array(
            array(
              'name' =&gt; 'gwf',
              'type' =&gt; 'text',
              'description' =&gt; 'GWF Number',
              'source' =&gt; array('path' =&gt; 0),
              'optional' =&gt; TRUE,
              'default' =&gt; '0',
            ),
          ),
        ),
        'create' =&gt; array(
          'help' =&gt; 'Creates applicants',
          'callback' =&gt; '_Api_create',
          'access callback' =&gt; 'user_access',
          'access arguments' =&gt; array('access content'),
          'access arguments append' =&gt; FALSE,
          'args' =&gt; array(
            array(
              'name' =&gt; 'data',
              'type' =&gt; 'array',
              'description' =&gt; 'User Account Info',
              'source' =&gt; 'data',
              'optional' =&gt; FALSE,
              'default' =&gt; '0',
            ),
          ),
        ),
        'test' =&gt; array(
          'help' =&gt; 'Tests API Connection',
          'callback' =&gt; '_Api_test',
          'access callback' =&gt; 'user_access',
          'access arguments' =&gt; array('access content'),
          'access arguments append' =&gt; FALSE,
          'args' =&gt; array(
            array(
              'name' =&gt; 'timestamp',
              'type' =&gt; 'text',
              'description' =&gt; 'Timestamp',
              'source' =&gt; array('path' =&gt; 0),
              'optional' =&gt; TRUE,
              'default' =&gt; '0',
            ),
          ),
        ),
      ),
    ),
  );

  return $api;
}


And am trying to post to it using: 

$create_website_applicant_path = 'http://' . $website_url . '/api/applicant/create/';

      $applicant = array(

        'mail' =&gt; $user['applicant_email'],
        'pass' =&gt; user_password(8),
        'status' =&gt;  1,
        'roles' =&gt;  array(2 =&gt; 1, 3 =&gt; 0, 8 =&gt; 0, 7 =&gt; 0, 6 =&gt; 0, 9 =&gt; 0),
        'notify' =&gt; 0,
        'timezone' =&gt; drupal_get_user_timezone(),
        'field_given_name' =&gt; array('und' =&gt; array('0' =&gt; array('value' =&gt; $user['first_name']))),
        'field_family_name' =&gt; array('und' =&gt; array('0' =&gt; array('value' =&gt; $user['last_name']))),
        'field_gwf' =&gt; array('und' =&gt; array('0' =&gt; array('value' =&gt; $user['gwf']))),
        'field_vac_ip' =&gt; array('und' =&gt; array('0' =&gt; array('value' =&gt; $_SERVER['REMOTE_ADDR']))),
        'submit' =&gt; 'Create new account',
        'ldap_user_create_ldap_acct' =&gt; 0,
        'op' =&gt; 'Create new account',
        'signature_format' =&gt; 'filtered_html',
      );


      $create_website_applicant_params = array(
        'method' =&gt; 'POST',
        'data' =&gt; drupal_http_build_query($applicant),
        'timeout' =&gt; 15,
      );
      $create_website_applicant_result = drupal_http_request($create_website_applicant_path, $create_website_applicant_params);
      echo $create_website_applicant_path;
      print_r($create_website_applicant_result);


The only problem is that when I try to use POST I get an error saying 404:Not found: Could not find the controller.  I know the page is there, I can go to it in my browser.  If I try to use GET the function being called for /api/applicant/create is actually _Apt_retrieve().  I'm not sure why this is and can't get it to point to the other function.
The path that you are passing in drupal_http_request is incorrect. It should be $create_website_applicant_path = 'http://' . $website_url . '/api/applicant/';