public bool openConnection(capex.http.HTTPClientRequest request, capex.http.HTTPClientListener listener) { if (request == null) { if (listener != null) { listener.onError("No request"); } return(false); } return(openConnection(request.getProtocol(), request.getServerAddress(), request.getServerPort(), listener)); }
public bool sendRequest(capex.http.HTTPClientRequest request, capex.http.HTTPClientListener listener) { if (request == null) { if (listener != null) { listener.onError("No request"); } return(false); } if (listener != null && listener.onStartRequest(request) == false) { return(false); } if (openSocket != null) { if (!(object.Equals(request.getServerAddress(), openSocketAddress)) || !(object.Equals(request.getProtocol(), openSocketProtocol)) || request.getServerPort() != openSocketPort) { closeConnection(listener); } } if (openSocket == null) { openConnection(request, listener); if (!(openSocket != null)) { return(false); } } if (listener != null) { listener.onStatus("Sending request headers .."); } var rqs = request.toString(defaultUserAgent); var pww = cape.PrintWriterWrapper.forWriter((cape.Writer)openSocket); var whr = pww.print(rqs); if (listener != null) { listener.onStatus(null); } if (whr == false) { if (listener != null) { listener.onError("Failed to send HTTP request headers"); } closeConnection(listener); return(false); } var body = request.getBody(); if (body != null) { if (listener != null) { listener.onStatus("Sending request body .."); } var rv = true; var bf = new byte[4096 * 4]; while (true) { var r = body.read(bf); if (r < 1) { break; } if (openSocket.write(bf, r) < r) { if (listener != null) { listener.onError("Failed to send request body"); } closeConnection(listener); rv = false; break; } } if (listener != null) { listener.onStatus(null); } if (rv == false) { return(false); } } return(true); }