webTestCase->drupalPost() or drupal_http_request()?
As said in the documentation page for DrupalWebTestCase::drupalPost(), that method supposes to be called for a Drupal page containing a form; if that is not the case, you should use drupal_http_request().

The reason is that the method tries to emulate a click on a submit button, as said in the description for the $submit parameter.


  $submit: Value of the submit button whose click is to be emulated. For example, t('Save'). The processing of the request depends on this value. For example, a form may have one button with the value t('Save') and another button with the value t('Delete'), and execute different code depending on which one is clicked.