blob: 2a3f8792e068e881f93cca5f0885162967613286 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_112) on Mon Dec 18 11:25:20 EST 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HttpStreams (Apache Edgent (incubating) v1.2.0 API)</title>
<meta name="date" content="2017-12-18">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HttpStreams (Apache Edgent (incubating) v1.2.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HttpStreams.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/edgent/connectors/http/HttpResponders.html" title="class in org.apache.edgent.connectors.http"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/edgent/connectors/http/HttpStreams.html" target="_top">Frames</a></li>
<li><a href="HttpStreams.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.edgent.connectors.http</div>
<h2 title="Class HttpStreams" class="title">Class HttpStreams</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.edgent.connectors.http.HttpStreams</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">HttpStreams</span>
extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">HTTP streams.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#HttpStreams--">HttpStreams</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#deleteJson-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-">deleteJson</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri)</code>
<div class="block">Make an HTTP DELETE request with JsonObject.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#getJson-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-">getJson</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri)</code>
<div class="block">Make an HTTP GET request with JsonObject.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#postJson-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-">postJson</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri,
<a href="../../../../../org/apache/edgent/function/UnaryOperator.html" title="interface in org.apache.edgent.function">UnaryOperator</a>&lt;com.google.gson.JsonObject&gt;&nbsp;body)</code>
<div class="block">Make an HTTP POST request with JsonObject.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#putJson-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-">putJson</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri,
<a href="../../../../../org/apache/edgent/function/UnaryOperator.html" title="interface in org.apache.edgent.function">UnaryOperator</a>&lt;com.google.gson.JsonObject&gt;&nbsp;body)</code>
<div class="block">Make an HTTP PUT request with JsonObject.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static &lt;T,R&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;R&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#requests-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-">requests</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;method,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri,
<a href="../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;T,org.apache.http.client.methods.CloseableHttpResponse,R&gt;&nbsp;response)</code>
<div class="block">Make an HTTP request for each tuple on a stream.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static &lt;T,R&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;R&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#requestsWithBody-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-">requestsWithBody</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;method,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,org.apache.http.HttpEntity&gt;&nbsp;body,
<a href="../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;T,org.apache.http.client.methods.CloseableHttpResponse,R&gt;&nbsp;response)</code>
<div class="block">Make an HTTP request with body for each tuple.<br></div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="HttpStreams--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HttpStreams</h4>
<pre>public&nbsp;HttpStreams()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getJson-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJson</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;getJson(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri)</pre>
<div class="block">Make an HTTP GET request with JsonObject. <br>
Method specifically works with JsonObjects. For each JsonObject in the stream,
HTTP GET request is executed on provided uri. As a result, Response is added to
the response TStream.
<br>
Sample usage:<br>
<pre>
<code>
DirectProvider ep = new DirectProvider();
Topology topology = ep.newTopology();
final String url = "http://httpbin.org/get?";
JsonObject request1 = new JsonObject();
request1.addProperty("a", "abc");
request1.addProperty("b", "42");
TStream&lt;JsonObject&gt; stream = topology.collection(Arrays.asList(request1));
TStream&lt;JsonObject&gt; rc = HttpStreams.getJson(stream,
HttpClients::noAuthentication,
t -&gt; url + "a=" + t.get("a").getAsString() + "&amp;b="
+ t.get("b").getAsString());
</code>
</pre>
<br>
See <i>HttpTest</i> for example. <br></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - - JsonObject TStream.</dd>
<dd><code>clientCreator</code> - - CloseableHttpClient supplier preferably created using <a href="../../../../../org/apache/edgent/connectors/http/HttpClients.html" title="class in org.apache.edgent.connectors.http"><code>HttpClients</code></a></dd>
<dd><code>uri</code> - - URI function which returns URI string</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TStream of JsonObject which contains responses of GET requests</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#requests-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-"><code>requests(TStream, Supplier, Function, Function, BiFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="deleteJson-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteJson</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;deleteJson(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri)</pre>
<div class="block">Make an HTTP DELETE request with JsonObject. <br>
Method specifically works with JsonObjects. For each JsonObject in the
stream, HTTP DELETE request is executed on provided uri. As a result,
Response is added to the response TStream. <br>
Sample usage:<br>
<pre>
<code>
DirectProvider ep = new DirectProvider();
Topology topology = ep.newTopology();
final String url = "http://httpbin.org/delete?";
JsonObject request = new JsonObject();
request.addProperty("a", "abc");
request.addProperty("b", "42");
TStream&lt;JsonObject&gt; stream = topology.collection(Arrays.asList(request));
TStream&lt;JsonObject&gt; rc = HttpStreams.deleteJson(stream,
HttpClients::noAuthentication,
t -&gt; url + "a=" + t.get("a").getAsString() + "&amp;b="
+ t.get("b").getAsString());
</code>
</pre>
<br>
See <i>HttpTest</i> for example. <br></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - - JsonObject TStream.</dd>
<dd><code>clientCreator</code> - - CloseableHttpClient supplier preferably created using <a href="../../../../../org/apache/edgent/connectors/http/HttpClients.html" title="class in org.apache.edgent.connectors.http"><code>HttpClients</code></a></dd>
<dd><code>uri</code> - - URI function which returns URI string</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TStream of JsonObject which contains responses of DELETE requests</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#requests-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-"><code>requests(TStream, Supplier, Function, Function, BiFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="postJson-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>postJson</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;postJson(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri,
<a href="../../../../../org/apache/edgent/function/UnaryOperator.html" title="interface in org.apache.edgent.function">UnaryOperator</a>&lt;com.google.gson.JsonObject&gt;&nbsp;body)</pre>
<div class="block">Make an HTTP POST request with JsonObject. <br>
Method specifically works with JsonObjects. For each JsonObject in the stream,
HTTP POST request is executed on provided uri. Request body is filled using
HttpEntity provided by body function. As a result, Response is added to
the response TStream.<br>
Sample usage:<br>
<pre>
<code>
DirectProvider ep = new DirectProvider();
Topology topology = ep.newTopology();
final String url = "http://httpbin.org/post";
JsonObject body = new JsonObject();
body.addProperty("foo", "abc");
body.addProperty("bar", 42);
TStream&lt;JsonObject&gt; stream = topology.collection(Arrays.asList(body));
TStream&lt;JsonObject&gt; rc = HttpStreams.postJson(stream,
HttpClients::noAuthentication, t -&gt; url, t -&gt; t);
</code>
</pre>
<br>
See HttpTest for example. <br></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - - JsonObject TStream.</dd>
<dd><code>clientCreator</code> - - CloseableHttpClient supplier preferably created using <a href="../../../../../org/apache/edgent/connectors/http/HttpClients.html" title="class in org.apache.edgent.connectors.http"><code>HttpClients</code></a></dd>
<dd><code>uri</code> - - URI function which returns URI string</dd>
<dd><code>body</code> - - Function that returns JsonObject which will be set as a body for the request.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TStream of JsonObject which contains responses of POST requests</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#requestsWithBody-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-"><code>requestsWithBody(TStream, Supplier, Function, Function, Function, BiFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="putJson-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putJson</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;putJson(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri,
<a href="../../../../../org/apache/edgent/function/UnaryOperator.html" title="interface in org.apache.edgent.function">UnaryOperator</a>&lt;com.google.gson.JsonObject&gt;&nbsp;body)</pre>
<div class="block">Make an HTTP PUT request with JsonObject. <br>
Method specifically works with JsonObjects. For each JsonObject in the
stream, HTTP PUT request is executed on provided uri. Request body is
filled using HttpEntity provided by body function. As a result, Response
is added to the response TStream.<br>
Sample usage:<br>
<pre>
<code>
DirectProvider ep = new DirectProvider();
Topology topology = ep.newTopology();
final String url = "http://httpbin.org/put";
JsonObject body = new JsonObject();
body.addProperty("foo", "abc");
body.addProperty("bar", 42);
TStream&lt;JsonObject&gt; stream = topology.collection(Arrays.asList(body));
TStream&lt;JsonObject&gt; rc = HttpStreams.putJson(stream,
HttpClients::noAuthentication, t -&gt; url, t -&gt; t);
</code>
</pre>
<br>
See HttpTest for example. <br></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - - JsonObject TStream.</dd>
<dd><code>clientCreator</code> - - CloseableHttpClient supplier preferably created using <a href="../../../../../org/apache/edgent/connectors/http/HttpClients.html" title="class in org.apache.edgent.connectors.http"><code>HttpClients</code></a></dd>
<dd><code>uri</code> - - URI function which returns URI string</dd>
<dd><code>body</code> - - Function that returns JsonObject which will be set as a body for the request.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TStream of JsonObject which contains responses of PUT requests</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#requestsWithBody-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-"><code>requestsWithBody(TStream, Supplier, Function, Function, Function, BiFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="requests-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requests</h4>
<pre>public static&nbsp;&lt;T,R&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;R&gt;&nbsp;requests(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;method,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri,
<a href="../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;T,org.apache.http.client.methods.CloseableHttpResponse,R&gt;&nbsp;response)</pre>
<div class="block">Make an HTTP request for each tuple on a stream.
<UL>
<LI><code>clientCreator</code> is invoked once to create a new HTTP client
to make the requests.
</LI>
<LI>
<code>method</code> is invoked for each tuple to define the method
to be used for the HTTP request driven by the tuple. A fixed method
can be declared using a function such as:
<UL style="list-style-type:none"><LI><code>t -&gt; HttpGet.METHOD_NAME</code></LI></UL>
</LI>
<LI>
<code>uri</code> is invoked for each tuple to define the URI
to be used for the HTTP request driven by the tuple. A fixed method
can be declared using a function such as:
<UL style="list-style-type:none"><LI><code>t -&gt; "http://www.example.com"</code></LI></UL>
</LI>
<LI>
<code>response</code> is invoked after each request that did not throw an exception.
It is passed the input tuple and the HTTP response. The function must completely
consume the entity stream for the response. The return value is present on
the stream returned by this method if it is non-null. A null return results
in no tuple on the returned stream.
</LI>
</UL></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Tuple type for input stream</dd>
<dd><code>R</code> - Tuple type for output stream</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - Stream to invoke HTTP requests.</dd>
<dd><code>clientCreator</code> - Function to create a HTTP client.</dd>
<dd><code>method</code> - Function to define the HTTP method.</dd>
<dd><code>uri</code> - Function to define the URI.</dd>
<dd><code>response</code> - Function to process the response.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream containing HTTP responses processed by the <code>response</code> function.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/connectors/http/HttpClients.html" title="class in org.apache.edgent.connectors.http"><code>HttpClients</code></a>,
<a href="../../../../../org/apache/edgent/connectors/http/HttpResponders.html" title="class in org.apache.edgent.connectors.http"><code>HttpResponders</code></a></dd>
</dl>
</li>
</ul>
<a name="requestsWithBody-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>requestsWithBody</h4>
<pre>public static&nbsp;&lt;T,R&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;R&gt;&nbsp;requestsWithBody(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;org.apache.http.impl.client.CloseableHttpClient&gt;&nbsp;clientCreator,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;method,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;uri,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;T,org.apache.http.HttpEntity&gt;&nbsp;body,
<a href="../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;T,org.apache.http.client.methods.CloseableHttpResponse,R&gt;&nbsp;response)</pre>
<div class="block">Make an HTTP request with body for each tuple.<br></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Tuple type for input stream</dd>
<dd><code>R</code> - Tuple type for output stream</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - Stream to invoke HTTP requests.</dd>
<dd><code>clientCreator</code> - Function to create a HTTP client.</dd>
<dd><code>method</code> - Function to define the HTTP method.</dd>
<dd><code>uri</code> - Function to define the URI.</dd>
<dd><code>body</code> - Function to define the HTTP request body</dd>
<dd><code>response</code> - Function to process the response.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream containing HTTP responses processed by the <code>response</code> function.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/connectors/http/HttpStreams.html#requests-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Function-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-"><code>requests(TStream, Supplier, Function, Function, BiFunction)</code></a>,
<a href="../../../../../org/apache/edgent/connectors/http/HttpClients.html" title="class in org.apache.edgent.connectors.http"><code>HttpClients</code></a>,
<a href="../../../../../org/apache/edgent/connectors/http/HttpResponders.html" title="class in org.apache.edgent.connectors.http"><code>HttpResponders</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HttpStreams.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/edgent/connectors/http/HttpResponders.html" title="class in org.apache.edgent.connectors.http"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/edgent/connectors/http/HttpStreams.html" target="_top">Frames</a></li>
<li><a href="HttpStreams.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2016&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>