(Android)Http Post请求90k数据,花费了6S的时间? 5C

我用Http Post请求,获取一个90k的数据,服务端传过来的是一个json对象,90k。我在Android端用HttpUrlConnection读取,然后转成对象,总共花费了6S的时间,网页上用js只花费了1s的时间。请问这是为什么?
我是这样写的:
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
String result = "";
while ((line = br.readLine()) != null) {
result += line;
}
//到这里花费了6S
Log.e("infoo", "result = " + result);
br.close();
return gson.fromJson(result, type);

                    然后我又试着用了下其他的框架,Volley,和OkHttp,也是花了这么长时间。请问我写的有什么问题吗?还是有些地方没有注意?

4个回答

你这是读到缓存中所花费的时间,仅仅是网络请求没有这么长

qq_35071078
下课睡觉 有啥解决办法吗,服务端返回的是Json对象的字符串
大约 2 年之前 回复
aben111
aben111 回复下课睡觉: 服务端传递给你的数据是什么格式呢?直接返回给你一个Json格式的数据么?
大约 2 年之前 回复
qq_35071078
下课睡觉 那有没有什么办法解决呢,我要把服务端传过来的这个对象,在Android上也转换成对应的对象。web端实现这个只需要1S,所以很困惑。。。。
大约 2 年之前 回复

这个不能这样比啊,Android这边读写操作费时的

qq_35071078
下课睡觉 回复Jude_Li: 是的啊,就是单独的放在一个线程里面
大约 2 年之前 回复
qq_33756493
昵称_Justin 回复下课睡觉: 把他单独放在一个线程里面也是这么慢嘛
大约 2 年之前 回复
qq_35071078
下课睡觉 但是感觉6S的时间是不是有点太长了。。。。。。
大约 2 年之前 回复

Android不管是网路求情还是读取缓存都是要消耗时间,而好事的操作一般要放到子线程中去进行的,看上面的代码就知道你没有放到子线程去进行这些耗时操作

qq_35071078
下课睡觉 这个跟线程没多大的关系吧,这个操作是在子线程里面的啊,我是放在AsysTask里面的。
大约 2 年之前 回复

自己重新封装太浪费时间 推荐直接使用网络框架 Okhttp Afinal等 JAR包网上都是可以下载的 望采纳

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android网络编程之Http请求服务器数据(POST方式)
Android中的网络请求主要有GET和POST方式。POST方式比GET方式更为安全,因为需要发送的消息不是嵌入在url中的,同时能比GET发送更多的数据。       本文讨论使用POST方式向聚合数据API发送请求,以获得手机号码归属地的信息。归属地查询的接口的请求示例为:http://apis.juhe.cn/mobile/get?phone=13429667914&key=您申请的KE
HttpClient POST 请求每次响应延迟3秒问题
最近做项目遇到一个非常奇怪的问题,当我使用HttpClient包向微信服务器发送post消息时,每一笔的处理时间都达到了3秒多钟。经过分析日志发现,每次调用execute方法 时,都需要3秒左右的时间也就是说在连接建立之后给微信发送通知居然还需要3s钟。而且根据日志,可以发现所有的发往微信服务器的请求无一例外都是3s多一点的时间, 这个让人有一种在应用中sleep了3秒的感觉。 遇到这个问题
Android传统HTTP请求get----post方式提交数据(包含乱码问题)
1.模仿登入页面显示 (解决中文乱码的问题,主要是对中文的数据进行URL编码) android手机默认的编码是UTF-8 2.手机截图Demo 3.服务器截图 代码如下: 服务器端的代码: //测试 android设备登入 public class Login extends HttpServlet { public void doGet(HttpServ
Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
讲这个之前,我们先来说说get和post两种请求的区别吧!!! 1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.jsp?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中. 2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制. 3.
Android客户端采用Http 协议Post方式请求与服务端进行数据交互
本示例以Servlet为例,演示Android与Servlet的通信。 众所周知,Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式。至于Socket通信会在以后的博文中介绍。   HTTP协议简介: HTTP (Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网
android http通过post请求发送一个xml
今天,简单讲讲android如何在网络请求时通过post方式发送xml数据。其实也很简单,不过我之前对网络请求这一块不太熟悉,当需要做这个发送xml数据时,居然不知道怎么做。后来,在网上查找资料,最终是解决了问题。这里记录一下。一.通过HttpURLConnection发送xml数据因为原理很简单,直接举例子。其中发送的xml数据为:<?xml version = “1.0” ?> ...
数据回归
线性回归 线性回归 局部加权线性回归 非线性回归 带非线性基的回归 logistic回归 欠拟合与过拟合 一、线性回归 即最小化均方误差LMS,其中X(i)表示第i个样本。 梯度下降求解: 牛顿法求解 概率角度理解LMS 2. 局部加权线性回归二、非线性回归1. 带非线性基的回归2. logistic回归回归分析可用来分析一个/多个自变量与一个因变量的关系,模型中
LiteHttp 第九节:POST方式的多种类型数据传输
POST方式可以传递大量的数据到服务器,包括图片、音乐、文本等各种多媒体文件,这节主要来说明下lite-http的集中数据传输形式,包括: > - 字符串上传 - UrlEncodedForm上传 - 对象自动转JSON上传 - 对象序列化后上传 - 字节上传 - 单文件上传 - 单输入流上传 - 多文件(表单)上传
Android HttpPost数据中文乱码的解决方案
在项目中,以HttpPost方式向服务器上提交数据时,服务器上中文竟然显示乱码,针对该种情况证明解决呢?其实,这样的问题,在架构的时候,就应该考虑到,如果牵扯到各个不同的平台应用,尽量统一使用UTF8编码,可以少很多麻烦。当然在post数据的时候,可以指定编码,请参阅下面的函数: · public Map CreateNote(int albumId, String title, St
HTTP Get和Post请求设置超时
HTTP Get和Post请求设置超时 Post请求: private Runnable runnable = new Runnable() { @Override public void run() { String url = BaseServicesInfo.SERVER_BASE_PATH + fileName;
http请求远程接口获得JSON数据(1) --- 利用HttpURLConnection发送post/get请求
http请求远程接口获得Json数据(1) --- 利用HttpURLConnection发送post/get请求 一、前言 远程接口请求,通过Http请求远程接口获得JSON数据,利用利用HttpURLConnection发送post/get请求 二、HttpURLConnection发送post请求 待续....
android利用httpclient实现post、get请求restful接口进行json和form表单数据提交等公共方法类
根据项目经验和自己常用的接口类型,编写了一个公共类,让原生android进行网络数据请求更加方便。 这个方法处理的情况如下: 1、利用httpclient协议进行通信(httpurlconnection 太类似) 2、进行post和get请求 3、接口接收参数有json格式和form表单格式的数据。 4、我会把接口形式也展现出来。至于怎样配置两种形式的restful接口。我就不说了 下
Android-使用GET、POST、AsyncHttpClient向服务器提交数据
在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持 在HTTP通信中使用最多的就是GET和POST了,GET请求可以获取静态页面,也可以把参数放在URL字符串的后面,传递给服务器。 POST与GET的不同之处在于POST的参数不是放在URL字符串里面,而是放在HTTP请求数据中。而且当我们把请
Android使用HttpURLConnection请求网络返回JSON数据并解析
要求:制作一个类似于今日头条的客户端,首页显示10条新闻。思路:使用Android的HttpURLConnection类请求一个URL,返回JSON数据,并使用自带的JSONArray类进行解析。方法:利用HttpURLConnection类请求网络数据(GET):URL url = new URL(urlStr); HttpURLConnection htt
[原]java中的post请求之raw请求--微信api调用java代码示例
调试微信推广支持中二维码生成api的接口,使用chrome浏览器的postman插件,post请求时有一个选项是form-data,或者raw,使用raw可以请求成功,from-data不知道怎么组装key和value所以一直失败。非常不明白raw是什么意思,google百度都没有相关的解释。后来研究发现,其实raw方式使用的是纯字符串的数据上传方式,所以在POST之前,可能需要手工的把一些jso
HttpClientUtils.post不设置超时时间容易导致,请求无法返回
Thread 6957: (state = IN_NATIVE)  - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Compiled frame; information may be imprecise)  - java.net.SocketInpu
android中Http请求及XML,JSON解析
get和post请求方式区别: get方式是把请求数据放放在URL(www.baidu.com?name=abc&pw=12345)中的?name=abc&pw=12345里发送到服务器,大小有限制,不超过1k。 post方式是把请求数据放在请求的实体内容中发送到服务器
Android中的Http通信(三)之get、post传递参数到服务器
如果你看到这一片文章,但是你还对http协议的基本知识以及通过url获取网络数据还不是很了解,请先看一下上面两篇文章:Android中的Http通信(一)之Http协议基本知识、 Android中的Http通信(二)之根据Url读取网络数据。 本文主要介绍的是通过http中的GET方式和POST方式上传数据到服务器,其中涉及到解决服务器乱码问题。本文需要服务器和Android前端配合,由于这
Android http post 中文乱码问题的解决
最近的项目中,要在安卓客户端填写信息,发送至服务器,用的是HTTP POST 方法,但是后台出现了中文乱码,内容如下: 服务器收到的数据如下: 【内容1】 {"content":"?????????","townId":"14","companyId":"8","date":"2014-12-27","supervisor":"??","userId":0} 这个功能除了在安卓客
android http post 请求与 json字符串
寸草之心 android http post 请求与 json字符串 一、目标   android客户端发送一个json格式的http的请求,期望得到服务端的一个json反馈。     1. 客户端发送的json格式为:                 {"data" : "valueString"}            2. 服务端发送的jso
android Http请求
android Http四种请求方式 包括get post httpClient请求
怎么利用HttpURLConnection向服务器发送键值对
一般情况下HttpURLConnection利用Get方法可以直接通过url向服务器发送键值对。这种方式下数据往往是以url?name=value&name1=value1.....的形式向服务器传送数据的。利用OutputStream直接向服务器写入字节流即可。但是对于一些比较隐秘的数据,用户并不想通过这种显示的方式向数据库传送数据。所有这时候即使是少量的数据也要用post方式来传送。对于pos
HttpPost请求的完美封装
摘要: /*** * 封装了post请求的方法: * 1.使用了异步AsyncTask + Handler的处理模式; * 2.适用于仅仅一条数据的请求,最大的优势在于:能够同时适用于多条数据的请求,并保证数据不出现紊乱; * 3.这里面也同时使用了 * compile 'com.jakewharton:butterknife:7.0.0' * compile '
使用WireShark抓包分析Android网络请求时间(二)
使用HTTP请求服务器获取json数据,在网络状态不好的时候,往往请求时间能达到数十秒甚至几分钟时间,而且检查过后发现服务器端和客户端均运转正常,没有出现服务器压力过大的情况,那么到底是哪一步让app获取数据的http请求过慢,于是模拟器真实的模拟一下用户的情况。查看一下连接成功率和丢包的问题
Android中的http带参数网络请求,GET和POST
网络请求get和post post适合请求参数较多的时候请求!这里就不说get和post的优缺点了 post请求类/** * uri地址 *List<BasicNameValuePair>封装的请求参数 */ public static string commopost(String url,List<BasicNameValuePair>){ HttpURLConnection
httpclient发送http请求设置网络超时时间
一、发送的ApiClient方法 可以设置网络超时时间 /*** Eclipse Class Decompiler plugin, copyright (c) 2016 Chen Chao (cnfree2000@hotmail.com) ***/ package liaohui.api; import java.io.BufferedReader; import java.io.File;...
利用volley进行http设置请求头、超时及请求参数设置(post)
这里以post请求说明,get请求相似设置请求头及超时。 1.自定义request,继承com.android.volley.Request 2.构造方法实现(basecallback,为自定义的监听,实现Response.Listener,ErrorListener接口)--post请求 public BaseRequest(String url,String params, BaseC
Android(或者Java)通过HttpUrlConnection向SpringMVC请求数据(数据绑定)
问题描述    当我们使用SpringMVC作为服务端的框架时,有时不仅仅要应对web前端(jsp、javascript、Jquery等)的访问请求,有时还可能需要响应Android和JavaSE(桌面应用)这些客户端的请求,因此,除了web使用form表单或者ajax作为客户端获取Controller响应之外,纯Java语言向SpringMVC的Controller提供参数和请求结果也是必须要实现
linux下C发送HttpPost请求
在linux 下用于发送简单post请求。 #include #include #include #include #include #include #include #define MAXLINE 1024 int post(char *ip,int port,char *page,char *msg){ int sockfd,n; char recvlin
使用angularjs的$http.post异步提交数据时,服务器接收不了的问题
一,在正常情况下,使用表单的post方法提交数据,默认请求头的Content-Type:application/x-www-form-urlencoded类型, 提交数据格式如下: 二,使用angularjs的$http.post提交数据,使用的是Content-Type:application/json类型, 请求头格式如下: 直接代码块: 1
http请求数据包含特殊字符处理(java)
问题描述:android客户端与后台进行网络请求的时候,为了安全起见,我们采用的方法一般是加签名,这个签名可以是Base64加密过的,或是RSA加密过的,这些签名的共同特点就是一大长串字符串,里面包含的有各种字符,比如 +,/n,?,/,$,& 等等,如果这些字符不做特殊处理的话,你很可能得到不正确的结果。解决办法:Get请求:当我们把请求参数按格式(key=value&key=value)拼接到u
http post请求时,数据过多,无法提交,bug解决
最近我们在做项目的时候,遇到提交订单时,如果订单的数据过多过大,结果总是post不成功,请求发布出去,如果数据量比较少,只有三五个订单,结果没有任何问题,之前发了好几个版本也没有遇到这个问题,请求框架还是沿用之前的 compile 'org.xutils:xutils:3.5.0' xutils. 请求不成功也看不到任何日志, 解决办法: 敲入:System.err.print
Android平台HttpGet、HttpPost请求实例
Android客户端请求服务器端的详细解释1. Android客户端与服务器端通信方式: Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式。 2. 解析服务器端返回数据的解释: (1).对于服务器端来说,返回给客户端的数据格式一般分为html、xml和json这三种格式。 (2). JSON(Javascript O
Android java_http
android通过post方法请求web服务数据
理解Android客户端POST请求参数
深入Android客户端POST请求参数 我们都知道,我们的客户端通过HTTP向服务器发送的post请求实质都是在拼接一个form表单。我们一般会使用下面几种方式进行post 1. 提交参数 2. 提交文件 3. 即提交参数也提交文件 本文也将就这三种方式的请求进行分析 提交参数的请求如我们使用OkHttp发起一个post请求,我们需要自己构建一个FormBody表单。
Android Http post 请求传递json 内包含数组 给服务器的实现方式.
最近项目中需要传递一个带数组的json数据给后台需求:格式如下:{&quot;orderType&quot;: &quot;TX&quot;,&quot;truckNo&quot;: &quot;YCSCR38913&quot;,&quot;pointNo&quot;: &quot;6&quot;,&quot;cntNum&quot;: 1,&quot;transactList&quot;: [{&quot;orderNo&quot;: &quot;201802070014&quot;,&quot;eirI
Android开发中HTTP协议HttpPost向服务器发送JSon数据格式的数据
public void sendBjData(final String send) { new Thread() { @Override public void run() { HttpClient httpClient = new DefaultHttpClient(); String host_pool = application_iGBS.getApi_ed
android 平台 Http ge和post请求工具
简单方便的android 端http get 和post 请求 测试端口数据用
浅谈Android中Http请求与缓存(上)
二月春风似剪刀,在这把剪刀的裁剪下,三月里春天正式拉开了她得帷幕,看到武大学妹发的樱花照片,正是美得无法收拾,令人陶醉,先给大家上两张,共同欣赏 来张近的: 再来张特写 好一只张可爱的乌龟: 连池塘里面的乌龟,都被这美景诱惑,爬上了水面,哈哈。。时光荏苒,一转眼离开武大已经5年了,但是当我看到这些图的时候,我的思绪一下就回到了5年前,樱顶、梅园、情人坡、奥场… 种种场景历历在目,
Android HttpUrlConnection 发送Post请求 PHP页面$_POST接收不到问题
问题描述: HttpUrlConnection httpUrlConnection = url.openConnection(); 1.设置httpUrlConnection .setRequestProperty("Content-Type","application/json"); 2.httpUrlConnection 发送Post请求,请求方式如下 DataOutputStr
相关热词 c#该名称在封闭局部范围 c#泛型 排序 c# 测试连接mysql c# 多线程 调用界面值 c# gdi unity c#反射构造带参对象 一起自学c# c#工厂方法 c# 对象属性保存xml u3d用c#写拾取物品