[
https://issues.apache.org/jira/browse/MINIFI-239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15981473#comment-15981473
]
ASF GitHub Bot commented on MINIFI-239:
---------------------------------------
Github user apiri commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/80#discussion_r112986328
--- Diff: libminifi/src/processors/InvokeHTTP.cpp ---
@@ -0,0 +1,537 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "processors/InvokeHTTP.h"
+
+#include <curl/curlbuild.h>
+#include <curl/easy.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_uuid_t.h>
+#include <uuid/uuid.h>
+#include <memory>
+#include <algorithm>
+#include <cctype>
+#include <cstdint>
+#include <cstring>
+#include <iostream>
+#include <iterator>
+#include <map>
+#include <set>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "core/FlowFile.h"
+#include "core/logging/Logger.h"
+#include "core/ProcessContext.h"
+#include "core/Relationship.h"
+#include "io/DataStream.h"
+#include "io/StreamFactory.h"
+#include "ResourceClaim.h"
+#include "utils/StringUtils.h"
+
+#if (__GNUC__ >= 4)
+#if (__GNUC_MINOR__ < 9)
+#include <regex.h>
+#endif
+#endif
+
+namespace org {
+namespace apache {
+namespace nifi {
+namespace minifi {
+namespace processors {
+
+const char *InvokeHTTP::ProcessorName = "InvokeHTTP";
+
+core::Property InvokeHTTP::Method(
+ "HTTP Method",
+ "HTTP request method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS). "
+ "Arbitrary methods are also supported. Methods other than POST, PUT
and PATCH will be sent without a message body.",
+ "GET");
+core::Property InvokeHTTP::URL(
+ "Remote URL",
+ "Remote URL which will be connected to, including scheme, host, port,
path.",
+ "");
+core::Property InvokeHTTP::ConnectTimeout(
+ "Connection Timeout", "Max wait time for connection to remote
service.",
+ "5 secs");
+core::Property InvokeHTTP::ReadTimeout(
+ "Read Timeout", "Max wait time for response from remote service.",
+ "15 secs");
+core::Property InvokeHTTP::DateHeader(
+ "Include Date Header", "Include an RFC-2616 Date header in the
request.",
+ "True");
+core::Property InvokeHTTP::FollowRedirects(
+ "Follow Redirects", "Follow HTTP redirects issued by remote server.",
+ "True");
+core::Property InvokeHTTP::AttributesToSend(
+ "Attributes to Send",
+ "Regular expression that defines which attributes to send as HTTP"
+ " headers in the request. If not defined, no attributes are sent as
headers.",
+ "");
+core::Property InvokeHTTP::SSLContext(
+ "SSL Context Service",
+ "The SSL Context Service used to provide client certificate
information for TLS/SSL (https) connections.",
+ "");
+core::Property InvokeHTTP::ProxyHost(
+ "Proxy Host",
+ "The fully qualified hostname or IP address of the proxy server", "");
+core::Property InvokeHTTP::ProxyPort("Proxy Port",
+ "The port of the proxy server", "");
+core::Property InvokeHTTP::ProxyUser(
+ "invokehttp-proxy-user",
+ "Username to set when authenticating against proxy", "");
+core::Property InvokeHTTP::ProxyPassword(
+ "invokehttp-proxy-password",
+ "Password to set when authenticating against proxy", "");
+core::Property InvokeHTTP::ContentType(
+ "Content-type",
+ "The Content-Type to specify for when content is being transmitted
through a PUT, "
+ "POST or PATCH. In the case of an empty value after evaluating an
expression language expression, "
+ "Content-Type defaults to",
+ "application/octet-stream");
+core::Property InvokeHTTP::SendBody(
+ "send-message-body",
+ "If true, sends the HTTP message body on POST/PUT/PATCH requests
(default). "
+ "If false, suppresses the message body and content-type header for
these requests.",
+ "true");
+
+core::Property InvokeHTTP::PropPutOutputAttributes(
+ "Put Response Body in Attribute",
+ "If set, the response body received back will be put into an attribute
of the original "
+ "FlowFile instead of a separate FlowFile. The attribute key to put to
is determined by evaluating value of this property. ",
+ "");
+core::Property InvokeHTTP::AlwaysOutputResponse(
+ "Always Output Response",
+ "Will force a response FlowFile to be generated and routed to the
'Response' relationship "
+ "regardless of what the server status code received is ",
+ "false");
+core::Property InvokeHTTP::PenalizeOnNoRetry(
+ "Penalize on \"No Retry\"",
+ "Enabling this property will penalize FlowFiles that are routed to the
\"No Retry\" relationship.",
+ "false");
+
+const char* InvokeHTTP::STATUS_CODE = "invokehttp.status.code";
+const char* InvokeHTTP::STATUS_MESSAGE = "invokehttp.status.message";
+const char* InvokeHTTP::RESPONSE_BODY = "invokehttp.response.body";
+const char* InvokeHTTP::REQUEST_URL = "invokehttp.requerst.url";
--- End diff --
typo here and in the referencing IT
> Create a C++ HTTP client processor to match the InvokeHTTP processor
> --------------------------------------------------------------------
>
> Key: MINIFI-239
> URL: https://issues.apache.org/jira/browse/MINIFI-239
> Project: Apache NiFi MiNiFi
> Issue Type: Task
> Components: C++, Extensions
> Reporter: Andrew Grande
> Assignee: marco polo
>
> There is a ListenHTTP processor, but nothing for the client side (e.g. to
> invoke REST APIs). The civetweb library is already being used, can be
> leveraged to implement the InvokeHTTP parity.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)