I'm finding myself traslating this Groovy code in php:
def conn = new URL("${baseUrl}/${endpoint}").openConnection()
conn.doInput = true
conn.doOutput = true
conn.outputStream.withWriter { writer ->
boolean and = false
for (entry in formData) {
def value = entry.value
switch (entry.value.getClass()) {
case Map:
case List:
value = JsonOutput.toJson(value)
// context.log "JSON: ${value}"
break
default:
value = value.toString()
}
if (and) writer << '&'
writer << entry.key << '=' << URLEncoder.encode(value, 'UTF-8')
and = true
}
}
def code = conn.responseCode
But i dont understand what writer does the last three lines and its ties with outputstream.I tried using the curl_init function of PHP:
$conn = curl_init();
curl_setopt($conn, CURLOPT_URL, $baseUrl.$endpoint);
curl_setopt($conn, CURLOPT_RETURNTRANSFER, true);
curl_setopt($conn, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Accept: application/json',
]);
$dataToSend = [];
$and = false;
foreach ($formData->line as $lineFormData) {
$valore = $lineFormData;
if(is_array($lineFormData)){
$valore = json_encode($lineFormData);
}else{
$valore = strval($lineFormData);
}
if($and) {
$dataToSend[] = $valore;
}
$and = true;
}
curl_setopt($conn, CURLOPT_POSTFIELDS, $dataToSend);
$ws_output = curl_exec($conn);
$err = curl_error($conn);
curl_close($conn);
if ($err) {
abort(500, "($endpoint) non riuscita - ($err)");
}
But i know it's wrong.Can someone help?