-
安卓中的网络HTTP查看全部
-
httppclient client=new httpclient();查看全部
-
模仿迅雷进行多线程下载,主要知识点就是: 第一:我们需要使用线程池来开启多个线程,并分配每个线程需要下载的数据的长度, 第二:然后在每个线程下载完其需要下载的那部分内容时,就会使用一个handler给主线程发送一个消息,当主线程接收到所有下载线程发送的消息时,说明下载完了。 另外还有一个知识点是如何获取下载图片的名字查看全部
-
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 创建JSON数据的方法 只需要在普通JAVA项目中新建文件夹libs,并将json架包导入,同时设置环境变量Java Build Path下的json架包地址即可 将需要的数据转换成json字符串的方法 Gson gson=new Gson();//创建json对象 System.out.println(gson.toJson(result));//调用toJson方法 服务器端json Servlet创建方法 1.将普通java项目下的json数据导入 2.重写doPost方法 response.setContentType("text/html;charset=utf-8");//指定页面信息和返回的编码集 PrintWriter out = response.getWriter(); 3.添加创建json字符串的代码 4.调用out.println(gson.toJson(resutlt));方法查看全部
-
httpClient的post方法 HttpClinet client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); //通过NameValuePair去存储数据 ArrayList<NameValuePair> list = new ArrayList<NameValuePair>(); list.add(new BasicNameValuePair("name",name)); list.add(new BasicNameValuePair("age",age)); try{ //设置要发送的数据 post.setEntity(new UrlEncodedFormEntity(list)); HttpResponse respose = client.execute(post); if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ String content = entityUtils.toString(respone.getEntity()); } }catch(UnsupportedEncodingException e){};查看全部
-
httpClinet的get方法 //创建httpget对象 HttpGet httpGet = new HttpGet(url); //创建Httpclient对象 HttpClinet client = new DefaultHttpClient(); HttpResponse respone; try{ //发送请求 respone = client.execute(httpGet); //判断类型 if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ //取出服务器返回的数据 String content = entityUtils.toString(respone.getEntity()); System.out.println("content------->"+content); } }catch(ClientProtocolException e){}查看全部
-
解决乱码问题 服务器端 new String(name.getBytes("iso-8859-1"),"utf-8") //get 字符转码操作,防止中文乱码 response.setContentType("text/html;charset=utf-8") //post 显示转码 客户机端 URLEncoder.encoder(name,"utf-8") //get 通过post发送信息不需要转码查看全部
-
总结: * HttpURLConnection的connect()函数,实际上只是建立了一个与服务器的tcp连接,并没有实际发送http请求。 * 无论是post还是get,http请求实际上直到HttpURLConnection的getInputStream()这个函数里面才正式发送出去。 * * 对HttpURLConnection对象的一切配置都必须要在connect()函数执行之前完成。 * 而对outputStream的写操作,又必须要在inputStream的读操作之前。 * 这些顺序实际上是由http请求的格式决定的。 * * 在http头后面紧跟着的是http请求的正文,正文的内容是通过outputStream流写入的, 实际上outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络, 而是存在于内存缓冲区中,待outputStream流关闭时,根据输入的内容生成http正文。 * 至此,http请求的东西已经全部准备就绪。在getInputStream()函数调用的时候,就会把准备好的http请求正式发送到服务器了,然后返回一个输入流,用于读取服务器对于此次http请求的返回信息。由于http请求在getInputStream的时候已经发送出去了(包括http头和正文),因此在getInputStream()函数之后对connection对象进行设置(对http头的信息进行修改)或者写入outputStream(对正文进行修改) 都是没有意义的了,执行这些操作会导致异常的发生。查看全部
-
conn.setDoInput(true);// 可以得到输入流 InputStream is = conn.getInputStream();// 图片的二进制流 final Bitmap bitMap = BitmapFactory.decodeStream(is); handler.post(new Runnable() { @Override public void run() { imageView.setImageBitmap(bitMap); } });查看全部
-
http/1.0和1.1区别 HTTP/1.0每次请求都需要建立新的TCP连接,连接不能复用。 HTTP/1.1新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。 HTTP1.1在Request消息头里头多了一个Host域,HTTP1.0则没有这个域。Host:www.w3.org HTTP1.1增加了OPTIONS,PUT,DELETE,TRACE,CONNECT这些Request方法查看全部
-
OSI参考模型将整个网络通信功能划分为七个层次: 由低到高分别是物理层PH、数据链路层DL、网络层N、传输层T、会话层S、表示层P、应用层A http协议属于应用层 每层直接为其上层提供服务,并且所有层次都互相支持。四到其层负责互操作性;一到三层用于创造两个网络设备间的物理连接 物理层和数据链路层:将比特流转换成电流信息,在物理设备电流设备转化 网络层:IP协议,规划网络ip地址 传输层:降底层信息通过nava协议传输,对应tcp、udp等协议 会话层:建立连接 表示层:在两个不同编码方式下进行数据转化和编码的加密解密操作 应用层:http访问层,应用请求协议 提出tcp/ip四层协议查看全部
-
三次握手 1.客户端向服务器发送请求 2.服务端响应 3.客户端确认连接 http可以称为事务,分为四步: 1.客户端与服务器进行连接 2.客户端像服务器发送请求 3.服务器响应 4.客户端显示查看全部
-
praseJson查看全部
-
json 取值查看全部
-
http可以称为事务,分为四步: 1.客户端与服务器进行连接 2.客户端像服务器发送请求 3.服务器响应 4.客户端显示查看全部
举报
0/150
提交
取消