コード例 #1
0
 private void AddHeaders(Response response, PortlessWebResponse webResponse)
 {
     foreach (string headerName in webResponse.Headers.Keys)
     {
         response.Headers[headerName.ToLower()] = webResponse.Headers[headerName];
     }
 }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
            }
        }
コード例 #5
0
        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);
            }
        }