-
使用HttpURLConnection的POST和GET(接上一笔记) 5.注意 (1)最好是将通过输入流获取的数据在APP中打印出来,这里使用了一个Handler的message处理来实现的 Message msg = Message.obtain(); msg.obj = sb.toString(); handler.sendMessage(msg); (2)根据经验来看,最后必须要关闭流 (3)如果在openConnection()的时候就timeout,是因为网络不通。 因为我是公司的网络,所以要将手机也连接同一个网中。 6.GET和POST的异同点 (1)GET提交的数据是封装在url中的,但要注意要转成URL POST提交的数据是通过输出流写到server端的,但是注意是字节输出流 (2)数据量来讲,GET只能提交小数据,POST比GET要大 (3)数据保密性来讲,POST显然比GET要好一些,因为GET的方式是将数据直接放在url中,POST却将数据封装在流中 (4)注意client在同server交互的流全部使用的是字节流 POST提交数据: os = conn.getOutputStream(); os.write(("name="+name+"&age="+age).getBytes()); 获取输入流是转换成字符流再处理的 br = new BufferedReader(new InputStreamReader(conn.getInputStream()));查看全部
-
使用HttpURLConnection的POST和GET 1.JAVA EE的安装以及Apache Tomcat运行环境的配置 http://jingyan.baidu.com/article/3a2f7c2e62d25e26afd611fa.html 2.MyServlet端的doGet() String name = request.getParameter("name"); String age = request.getParameter("age"); PrintWriter out = response.getWriter(); out.append("Served at: ").append(request.getContextPath()).append(" name="+name+" age="+age); 这是关键的一句,通过PrintWriter向输出流中写入了数据,HttpURLConnection通过getInputStream()就可以得到流数据。 3.GET方式 GET方式是通过URL提交了数据,所以提交的数据必须写在url中。 String urlGet = url+"?name="+name+"&age="+age; URL httpUrl = new URL(urlGet); conn.setRequestMethod("GET"); HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection(); 然后通过conn获取流数据。 4.POST方式 POST是将数据写在字符流中,然后通过输出流写到server端的。 URL httpUrl = new URL(url); conn = (HttpURLConnection) httpUrl.openConnection(); conn.setRequestMethod("POST"); os = conn.getOutputStream(); os.write(("name="+name+"&age="+age).getBytes()); 具体如图。查看全部
-
http查看全部
-
HttpUrlConnection介绍 1.关于HttpUrlConnection类的介绍,看一下API文档 它是继承自URLConnection类的,通过httpUrl.openConnection()获得一个实例 注意:一定要看那几个实现例子 2.本例子中实现了一个webView的加载 通过封装了字节流InputStream的BufferedReader字符流来获取网页的数据,最后通过WebView.loadData()将数据加载进来(如图) http://blog.csdn.net/jiong056/article/details/8253860 注意: 如果网页加载出现了乱码,注意看一下mimetype中指定的编码是不是有问题。 3.通过下载一个网页图片到本地,然后decode成一个bitmap,最后加载到imageView中 InputStream is = conn.getInputStream(); //创建http连接的输入流,用于读取流 FileOutputStream outputStream= null; File downloadFile = null; downloadFile = new File(……); outputStream = new FileOutputStream(downloadFile);//创建一个文件输出流,用于写流到文件中 byte[] b = new byte[2*1024]; int length; if(outputStream != null){ while((length = is.read(b))!=-1){ outputStream.write(b, 0, length); } } final Bitmap bitmap = BitmapFactory.decodeFile(downloadFile.getAbsolutePath()); 这个例子还可以直接改成从输入流中decode图片 InputStream is = conn.getInputStream(); final Bitmap bitmap = BitmapFactory.decodeStream(is); 4.注意关闭相关资源 is.close(); out.close(); conn.disconnet();查看全部
-
关于Http协议 1.Http协议的详细介绍: HTTP,超文本传送协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。简单理解就是提供了一种发布和接收网站页面的规范和方法。HTTP一般建立在稳定的链接上,不管是TCP还是UDP。 这里有详细的关于请求和响应的讲解:http://blog.csdn.net/gueter/article/details/1524447 另外还有两篇自己写的笔记,以及lenovo-guest服务器的鉴权分析。 2.关于URL,见自己的《JAVA socket应用》笔记 3.协议分层和三次握手,略 4.注意这是nate的视频,可以跳着看,不要听他说的话,要看代码和写的讲解。 复习时以笔记和代码为主。查看全部
-
URL查看全部
-
整个的http访问过程查看全部
-
post方法请求查看全部
-
httpClient用get方法查看全部
-
t添加架包查看全部
-
http/1.0和1.1<br> HTTP/1.0每次请求都需要建立新的TCP连接,连接不能复用。<br> HTTP/1.1新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。<br> HTTP1.1增加了OPTIONS,PUT,DELETE,TRACE.CONNECT这些Request方法。 HTTP1.1在Request消息头里头多了一个Host域,HTTP1.0则没有这个域查看全部
-
http响应码: 200 OK //客户端请求成功; 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的URL 500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常 二、OSI参考模型将整个网络通信功能划分为七个层次:<br> 由低到高分别是物理层PH、数据链路层DL、网络层N、传输层T、会话层S、表示层P、应用层A<br> http协议属于应用层<br> 每层直接为其上层提供服务,并且所有层次都互相支持。四到其层负责互操作性;一到三层用于创造两个网络设备间的物理连接<br> 物理层和数据链路层:将比特流转换成电流信息,在物理设备电流设备转化<br> 网络层:IP协议,规划网络ip地址<br> 传输层:降底层信息通过nava协议传输,对应tcp、udp等协议<br> 会话层:建立连接<br> 表示层:在两个不同编码方式下进行数据转化和编码的加密解密操作<br> 应用层:http访问层,应用请求协议<br> 提出tcp/ip四层协议查看全部
-
HTTP 是超文本传输协,面向应用层协议,传输的对象为文件 一次Http操作为一个事务 1:客户机和服务器建立连接,单击链接开始工作 2:客户机发送请求给服务器,格式为URL、协议版本号,后面是MIME信息 3:服务器接到请求后,给以响应信息,格式为一个状态行,包括协议版本号、一个成功或错误的代码,后面是MIME信息(404错误代码为无法响应) 4:客户端街道服务器的响应信息,然后断开连接 HTTP协议是一个无状态的协议 URL(UniformResourceLocator)为网页地址。由三部分构成:第一部分为协议(https为加密协议)、第二部分为IP地址(一般是域名表示IP地址)(有时包括端口号)、第三部分为主机资源的具体地址,如目录和文件名 TCP/IP三次握手 SYN是TCP/IP连接时使用的握手信息(synchronous),在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN信息,服务器使用SYN和ACK应答表示接受到了这个信息,最后客户机再以ACK信息确认响应,这样在客户机和服务器机建立起可靠的TCP连接 ACK(Acknowledgement)即确认字符,表示已经接受到信息 三次握手: 客户机:你好,我想和你建立连接(发送SYN请求连接) 服务器:你好,我已经接受到信息并且已经准备连接,同时我也想和你建立连接(发送ACK表示可以连接,同时发送SYN表示连接想法) 客户机:谢谢,我已经收到你的连接想法,同时我已经准备连接(回发ACK表示可以连接) 整个过程是双方都需要向对方发送连接想法和确认连接信息 http请求头信息: Request URL:请求的地址 Request Method:请求方法 Status Code:请求状态 Accept:可以接受的文件格式 Accept-Encoding:可接受的编码 Accept-Language:可接受的语言 Connection:连接方式 Host:主机地址 http响应形式: 200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态码必须和WWW-Authenticate 报头玉一起使用 403 Forbidden// 服务器收到请求,但是拒绝提供服务查看全部
-
数据的存储查看全部
-
网络结构查看全部
举报
0/150
提交
取消