// Process Get Request int processGetTask(EJHttpRequest *request, write_callback callback, void *stream, int32_t *responseCode) { CURLRaii curl; bool ok = curl.init(request, callback, stream) && curl.setOption(CURLOPT_FOLLOWLOCATION, true) && curl.perform(responseCode); return ok ? 0 : 1; }
//Process Get Request static int processGetTask(HttpRequest *request, write_callback callback, void *stream, long *responseCode, write_callback headerCallback, void *headerStream, char *errorBuffer) { CURLRaii curl; bool ok = curl.init(request, callback, stream, headerCallback, headerStream, errorBuffer) && curl.setOption(CURLOPT_FOLLOWLOCATION, true) && curl.perform(responseCode); return ok ? 0 : 1; }
//Process DELETE Request static int processDeleteTask(CCHttpRequest *request, write_callback callback, void *stream, int32_t *responseCode, write_callback headerCallback, void *headerStream) { CURLRaii curl; bool ok = curl.init(request, callback, stream, headerCallback, headerStream) && curl.setOption(CURLOPT_CUSTOMREQUEST, "DELETE") && curl.setOption(CURLOPT_FOLLOWLOCATION, true) && curl.perform(responseCode); return ok ? 0 : 1; }
//Process DELETE Request static int processDeleteTask(HttpClient* client, HttpRequest* request, write_callback callback, void* stream, long* responseCode, write_callback headerCallback, void* headerStream, char* errorBuffer) { CURLRaii curl; bool ok = curl.init(client, request, callback, stream, headerCallback, headerStream, errorBuffer) && curl.setOption(CURLOPT_CUSTOMREQUEST, "DELETE") && curl.setOption(CURLOPT_FOLLOWLOCATION, true) && curl.perform(responseCode); return ok ? 0 : 1; }
static int processPostFileDataTask(App42HttpRequest *request, write_callback callback, void *stream, long *responseCode, write_callback headerCallback, void *headerStream) { struct curl_httppost *formpost = NULL; struct curl_httppost *lastptr = NULL; std::string fileName = request->fileName(); std::string requestName = request->requestName(); std::map<std::string,std::string> postParams = request->postParams(); printf("\nrequestName=%s\n",requestName.c_str()); printf("\nfileName=%s\n",fileName.c_str()); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, requestName.c_str(), CURLFORM_BUFFER, fileName.c_str(), CURLFORM_BUFFERPTR, request->getFileData(), CURLFORM_BUFFERLENGTH, (long)request->getFileDataSize(), CURLFORM_CONTENTTYPE,"multipart/form-data", CURLFORM_END); /* Fill in the filename field */ curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "filename", CURLFORM_COPYCONTENTS, fileName.c_str(), CURLFORM_END); std::map<std::string,std::string>::iterator it; for(it=postParams.begin(); it!=postParams.end(); ++it) { curl_formadd(&formpost, &lastptr, CURLFORM_PTRNAME, it->first.c_str(), CURLFORM_PTRCONTENTS, it->second.c_str(), CURLFORM_END); } CURLRaii curl; bool ok = curl.init(request, callback, stream, headerCallback, headerStream) && curl.setOption(CURLOPT_POST, 1) && curl.setOption(CURLOPT_HTTPPOST, formpost) && curl.perform(responseCode); curl_formfree(formpost); return ok ? 0 : 1; }
// Process PUT Request int processPutTask(EJHttpRequest *request, write_callback callback, void *stream, int32_t *responseCode) { CURLRaii curl; bool ok = curl.init(request, callback, stream) && curl.setOption(CURLOPT_CUSTOMREQUEST, "PUT") && curl.setOption(CURLOPT_POSTFIELDS, request->getRequestData()) && curl.setOption(CURLOPT_POSTFIELDSIZE, request->getRequestDataSize()) && curl.perform(responseCode); return ok ? 0 : 1; }
//Process POST Request static int processPostTask(CCHttpRequest *request, write_callback callback, void *stream, int32_t *responseCode, write_callback headerCallback, void *headerStream) { CURLRaii curl; bool ok = curl.init(request, callback, stream, headerCallback, headerStream) && curl.setOption(CURLOPT_POST, 1) && curl.setOption(CURLOPT_POSTFIELDS, request->getRequestData()) && curl.setOption(CURLOPT_POSTFIELDSIZE, request->getRequestDataSize()) && curl.perform(responseCode); return ok ? 0 : 1; }
//Process PUT Request static int processPutTask(HttpRequest *request, write_callback callback, void *stream, long *responseCode, write_callback headerCallback, void *headerStream, char *errorBuffer) { CURLRaii curl; bool ok = curl.init(request, callback, stream, headerCallback, headerStream, errorBuffer) && curl.setOption(CURLOPT_CUSTOMREQUEST, "PUT") && curl.setOption(CURLOPT_POSTFIELDS, request->getRequestData()) && curl.setOption(CURLOPT_POSTFIELDSIZE, request->getRequestDataSize()) && curl.perform(responseCode); return ok ? 0 : 1; }
//Process PostFile Request static int processPostFileTask(HttpRequest *request, write_callback callback, void *stream, long *responseCode, write_callback headerCallback, void *headerStream, char *errorBuffer) { struct curl_httppost *post1; struct curl_httppost *postend; post1 = NULL; postend = NULL; curl_formadd(&post1, &postend, CURLFORM_COPYNAME, "files[]", CURLFORM_FILE, request->getFilePath().c_str(), CURLFORM_CONTENTTYPE, "application/octet-stream", CURLFORM_END); CURLRaii curl; bool ok = curl.init(request, callback, stream, headerCallback, headerStream, errorBuffer) && curl.setOption(CURLOPT_NOPROGRESS, 1L) && curl.setOption(CURLOPT_MAXREDIRS, 50L) && curl.setOption(CURLOPT_TCP_KEEPALIVE, 1L) && curl.setOption(CURLOPT_HTTPPOST, post1) && curl.perform(responseCode); return ok ? 0 : 1; }