Example #1
0
        /** {@inheritDoc} */


        /** {@inheritDoc} */

        public void executeHttpRequest(QQHttpRequest request, HttpActor.HttpAdaptor listener)
        {
            HttpMethod         method;
            HttpRequestMessage req = new HttpRequestMessage();

            if (request.getMethod().Equals("get", StringComparison.OrdinalIgnoreCase))
            {
                method = HttpMethod.Get;
            }
            else
            {
                method      = HttpMethod.Post;
                req.Content = new FormUrlEncodedContent(request.getPostDictionary());
            }
            req.Method     = method;
            req.RequestUri = new Uri(request.getUrl());

            httpClient.SendAsync(req).ContinueWith(
                (requestTask) =>
            {
                if (requestTask.IsFaulted)
                {//处理异常
                    Console.WriteLine(requestTask.Exception);
                }
                else
                {
                    HttpResponseMessage response = requestTask.Result;
                    HttpResponseHeaders headers  = response.Headers;
                    foreach (KeyValuePair <String, IEnumerable <String> > pair in headers)
                    {
                        Console.WriteLine(pair.Key + " :    " + pair.Value);
                    }
                    response.Content.ReadAsByteArrayAsync().ContinueWith(
                        (readTask) =>
                    {
                        QQHttpResponse resp = new QQHttpResponse(response);
                        resp.respData       = readTask.Result;
                        listener.onHttpFinish(resp);
                    });
                }
            });
        }