in src/main/java/org/apache/sling/pipes/AbstractInputStreamPipe.java [112:139]
private URLConnection preparePost(String expr) throws IOException {
HttpURLConnection connection;
String url = expr;
String data = EMPTY;
byte[] postData;
if (expr.contains(QUERY_CHAR)) {
data = StringUtils.substringAfter(expr, QUERY_CHAR);
url = StringUtils.substringBefore(expr, QUERY_CHAR);
} else {
//we consider POST property value to be the request body
data = getBindings().instantiateExpression(properties.get(METHOD_POST, String.class));
}
connection = (HttpURLConnection) new URL(url).openConnection();
connection.setRequestMethod(METHOD_POST);
postData = data.getBytes(StandardCharsets.UTF_8);
int postDataLength = postData.length;
if (expr.contains(QUERY_CHAR)) {
connection.setRequestProperty(HEADER_TYPE, "application/x-www-form-urlencoded");
}
connection.setRequestProperty( HEADER_LENGTH, Integer.toString( postDataLength ));
connection.setDoOutput( true );
connection.setInstanceFollowRedirects( false );
addHeaders(connection);
try( DataOutputStream wr = new DataOutputStream( connection.getOutputStream())) {
wr.write( postData );
}
return connection;
}