<?php # global variable to catch communication errors $errstr = ""; # open connection to WebJson process $fp = fsockopen("127.0.0.1", 8080, $errno, $errstr, 30); if ($fp) { # connection OK, set timeout stream_set_timeout($fp, 5); # send data $var = file_get_contents('php://input'); fwrite($fp, $var . "\x03"); # read data $var = ''; while (1) { # read some bytes $x = fread($fp, 1000); if ($x == "") { $errstr = "Timeout"; break; } $var .= $x; # search for end marker $pos = strpos($var, "\x03"); if ($pos >= 0) { # found $var = substr($var, 0, $pos); break; } } # done, close connection fclose($fp); } else { $errstr = "Connect error $errno: $errstr"; } if ($errstr == "") { # all OK header('Content-Type: application/json'); echo $var; } else { # error happened http_response_code (500); header('Content-Type: text/plain'); echo $errstr; } ?>