private void AddHeaders(Response response, PortlessWebResponse webResponse) { foreach (string headerName in webResponse.Headers.Keys) { response.Headers[headerName.ToLower()] = webResponse.Headers[headerName]; } }
private static byte[] GetResponseBody(PortlessWebResponse response) { using (Stream responseStream = response.GetResponseStream()) { byte[] body = new byte[responseStream.Length]; responseStream.Read(body, 0, (int)responseStream.Length); return(body); } }
private static List GetHeaders(PortlessWebResponse response) { ArrayList headers = new ArrayList(); foreach (string headerName in response.Headers.Keys) { headers.add(new NameValuePair(headerName, response.Headers[headerName])); } return(headers); }
public HtmlWebResponse getResponse(HtmlWebRequest wr) { PortlessWebRequest request = host.CreateRequest(new Uri(wr.getUrl().toString())); request.Method = wr.getHttpMethod().name(); using (PortlessWebResponse response = request.GetPortlessResponse()) { HtmlWebResponseData responseData = new HtmlWebResponseData( GetResponseBody(response), /*response.StatusCode*/ 200, /*response.StatusDescription*/ "200 OK", GetHeaders(response)); return(new HtmlWebResponse(responseData, wr, 1)); } }
public async Task HandleRequest(Request request, Func <Error, Response, Task> callback) { PortlessWebRequest webRequest = host.CreateRequest(request.Url); webRequest.Method = request.Method; await AddHeaders(request, webRequest); AddBody(request, webRequest); using (PortlessWebResponse webResponse = webRequest.GetPortlessResponse()) { Response response = new Response(); response.Url = request.Url; AddHeaders(response, webResponse); using (Stream stream = webResponse.GetResponseStream()) { byte[] responseBytes = new byte[stream.Length]; stream.Read(responseBytes, 0, (int)stream.Length); response.Body = Encoding.UTF8.GetString(responseBytes); } await callback(null, response); } }