如何从Apache模块将数据发布到外部端点?

时间:2015-08-21 08:52:36

标签: apache module

我正在编写一个Apache模块。在同一个我能够通过处理请求读取请求参数并制作一些参数。现在我想将此数据发布到外部端点。我该怎么做?

说我有数据 char* data = "{clientid:2433211456}";我希望以异步模式将其发布到网址example.com/getPostedData,我该怎么做?

注意:目前我正在使用计划Apache libs和APXS工具。如果我可以有一些我可以构建相同的模块,请建议。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题如下:

  1. 我使用curl发布请求。
  2. 已安装libcurl-devel
  3. 在处理程序方法中:

    char* postData="hello=hie";
    CURL *curl;
    curl = curl_easy_init();
    ap_rprintf(r,"Intialized Curl!<br>");
    if(curl) {
      ap_rprintf(r,"Curl Request Posting Started!<br>");
      curl_easy_setopt(curl, CURLOPT_URL,"http://google.com/search");
        //curl_easy_setopt(curl, CURLOPT_POST,1L);
      curl_easy_setopt(curl, CURLOPT_POSTFIELDS,postData);
      ap_rprintf(r,"%d",curl_easy_perform(curl));
      curl_easy_cleanup(curl);
    }
    
  4. 将其编译为:apxs -i -a -c mod_example.c -lcurl
  5. 完成!!
  6. 有关libcurl的更多参考:http://curl.haxx.se/libcurl

    在github here上找到我的示例模块代码。