code: private Object invokeAndReadResponse(String methodName, Object argument, Type returnType, OutputStream output, InputStream input, String id) throws Throwable {
  		invoke(methodName, argument, output, id);
  		return readResponse(returnType, input, id);
  	}
docs: Invokes the given method on the remote service
  passing the given arguments and reads a response.
  
  @param methodName the method to invoke
  @param argument   the argument to pass to the method
  @param returnType the expected return type
  @param output     the {@link OutputStream} to write to
  @param input      the {@link InputStream} to read from
  @param id         id to send with the JSON-RPC request
  @return the returned Object
  @throws Throwable if there is an error
  while reading the response
  @see #writeRequest(String, Object, OutputStream, String)