httpSetMethodHandler()
The function can be used to redirect an HTTP method to a user-defined CTRL callback function.
Synopsis
int httpSetMethodHandler( string method, string callback);
                
Parameter
| Parameter | Description | 
|---|---|
| method | The HTTP method that should be redirected to a callback function. | 
| callback | The callback function that is called. | 
Return value
The function returns 0 when it was successfully executed and -1 in case of errors.
Error
See the return values above.
Additionally, a warning is shown if unsupported or non-existent HTTP methods are called. In this case, the HTTP server also returns a warning.
Description
The function can be used to redirect an HTTP method ( e.g.: "PATCH", "PUT", "TRACE", "OPTIONS" or "DELETE") to a user-defined CTRL callback function. In other words, when an HTTP server receives a message that contains one of these methods, the specified CTRL callback function is called. The function must contain the following arguments:
callback(string clientIP, string url, int idx);
            | Parameter | Description | 
|---|---|
| clientIP | IP of the requesting client. See example below. | 
| url | The requested URL. See example below. | 
| idx | The client index, meaning an internal client number. See example below. | 
Example
The example redirects the HTTP method "DELETE" to the callback function "deleteCB".
#uses "CtrlHTTP"
main()
{
  dyn_string names, values;
  names = makeDynString("first", "second");
  values = makeDynString("first value", "second-value");
  DebugN(httpMakeParamString(names, values)); // => "first=first%20value&second=second-value"
  //Example for httpSetMethodHandler
  httpServer(false, 8080, 0);
  httpSetMethodHandler("DELETE", "deleteCB");
  /* For this example, the client is the local computer and the
  client sends the HTTP DELETE message */
  string result;
  /* netDelete deletes the resource */
  netDelete("http://localhost:8080/path/to/document", result);
  if ( result == "done" )
  DebugN("resource was deleted");
}
string deleteCB(string clientIP, string url, int idx)
{
  DebugN("client " + clientIP + " has requested to delete " +
  url);
  return "done";
}
        Assignment
CTRL PlugIn
Availability
CTRL