C# .net Java httpclient HttpEntity 流读取 相关问题

发布于 2022-09-01 17:26:39 字数 486 浏览 21 评论 0

Java httpclient 用如下HttpClient加流操作的方式获取response的内容

HttpGet httpGet =new HttpGet("http://www.baidu.com");
HttpResponse response = client.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity !=null) {
    InputStream instream = entity.getContent();
    int byteOne = instream.read();
    int byteTwo = instream.read();
    // Do not need the rest
    httpGet.abort();
}

在.net httpclient应使用哪些api做怎么的相应处理?
如果能给出直接的代码让我研究学习那就最好啦^-^

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你如我软肋 2022-09-08 17:26:39
  public static HttpClientResult httpGet(string url, IDictionary<string, string> headMap)
        {
            string response = "";
     
            try
            {
                HttpClient hc = new HttpClient();
                hc.Timeout = new System.TimeSpan(300);

                if (headMap != null && headMap.Count > 0)
                {
                    foreach (string name in headMap.Keys)
                    {
                        hc.DefaultRequestHeaders.Add(name,headMap[name]);
                    }
                }

                var getTask =  hc.GetAsync(new Uri(url));
                HttpResponseMessage responseM = hc.GetAsync(new Uri(url)).Result;

                Stream instream = responseM.Content.ReadAsStreamAsync().Result;
                BufferedStream bfs = new BufferedStream(instream);
                byte[] buffer = new byte[1024];
                StringBuilder sb = new StringBuilder();
                while (bfs.Read(buffer, 0, buffer.Length) > 0)
                {
                    sb.Append(Encoding.GetEncoding("UTF-8").GetString(buffer));
                }
                response = sb.ToString();

                bfs.Flush();
                bfs.Close();
                instream.Close();

                int statusCode = (int)responseM.StatusCode;
                return new HttpClientResult(statusCode, response);
            }
            catch (HttpRequestException e)
            {
                throw new HttpRequestException("HttpRequestException");
            }
            finally
            {
               
            }
        }

HttpGet ----> var getTask = hc.GetAsync(new Uri(url));
HttpResponse --> HttpResponseMessage responseM = hc.GetAsync(new Uri(url)).Result;
大致有这么一个对应关系。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文