code: public Object transport(String methodName, Object[] args, Class<?>[] parameterTypes,
              Type genericReturnType, Attachment attachment) throws Throwable {
          ResponseDTO response;
          long start = System.currentTimeMillis();
          try {
              RequestDTO request = makeRequestDTO(methodName, args, parameterTypes);
              if (attachment != null) {
                  attachmentHandler.handle(request, attachment);
              }
              byte[] reqBytes = serializeHandler.serialize(request, RequestDTO.class);
              preLog(request, reqBytes);
              HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
              sendRequest(reqBytes, connection);
              byte[] resBytes = readResponse(connection);
              response = serializeHandler.deserialize(resBytes, ResponseDTO.class, null,
                      genericReturnType);
              postLog(request, reqBytes, resBytes, start);
          } catch (IOException e) {
              throw new RpcException("Rpc transport has IO problems - " + e.getMessage(), e);
          } catch (CodecException e) {
              throw new RpcException("Rpc transport has serialization problems - " + e.getMessage(),
                      e);
          } catch (RpcException e) {
              throw e;
          }
          checkResponse(response);
          return response.getResult();
      }
docs: 调用通信
  
  @param method
  方法
  @param args
  参数
  @param parameterTypes
  参数类型
  @param genericReturnType
  泛型返回结果类型
  @param attachment附加信息
  @return 结果对象
  @throws Throwable
  异常信息