code: protected TransportResult doit(String method, URI uri, String payload){
  		HttpURLConnection httpConnection = null;
  		try {
  			URL url = uri.toURL();
  			URLConnection connection = url.openConnection();
  
  			if (connection instanceof HttpURLConnection) {
  				httpConnection = (HttpURLConnection) connection;
  
  				httpConnection.setRequestMethod(method);
  //				httpConnection.setRequestProperty("Content-Language", "en-US");
  
  				httpConnection.setRequestProperty(apiAuthHeaderKey, getApitraryApi().getApiKey());
  				httpConnection.setRequestProperty("Accept", contentType);
  				httpConnection.setRequestProperty("Content-Type", contentType);
  
  				httpConnection.setUseCaches(false);
  				httpConnection.setDoInput(true);
  				httpConnection.setDoOutput(payload!=null);
  
  				log.debug(method+" "+ httpConnection.getURL()+(payload!=null?"application/json: "+payload:""));
  				
  				if(payload!=null){
  					byte[] bytes = payload.getBytes();
  					httpConnection.setRequestProperty("Content-Length", "" + Integer.toString(bytes.length));
  					DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
  					wr.writeBytes(payload);
  					wr.flush();
  					wr.close();
  				}
  
  				return new JavaNetClientTransportResult(httpConnection);
  			} else {
  				throw new ApiTransportException("Connection is not an HTTPConnection");
  			}
  		} catch (IOException ioe) {
  			throw new ApiTransportException(ioe);
  		}
  	}
docs: <p>
  doit.
  </p>
  
  @param method
  a {@link java.lang.String} object.
  @param uri
  a {@link java.net.URI} object.
  @param payload
  a {@link java.lang.String} object.
  @return a {@link com.apitrary.api.transport.TransportResult} object.