总结使用Get、Post、Socket三种方式连接服务端与传输数据的步骤

来源:互联网 发布:neon软件官网 编辑:程序博客网 时间:2024/05/17 09:27

以下只是个人的总结,如有错误之处,请多多指教。转载请注明出处!谢谢!

 一、使用Get方式连接
                        步骤:
                        1)客户端:
                        1.添加权限                       android.permission.INTERNET
                        2.定义访问路径                     private satic find String lj="http://xxx.xx.xx.xx/xx"
                        3.实例化HttpClient               HttpClient ht=new HttpClient();
                        4.实例请求方式(HttpGet)     HttpGet g=new Httpget(路径lj+参数值)  参数值可有可无,是在"?"后面需要传值的变量
                        5.通过HttpClient的execute[执行](请求方式),检索Httprespond          HttpResponse rs=ht.execute(g)
                        6.获取respond的状态,判断是否与服务端响应成功                                 if(rs.getStatusLine().getStatusCode()==200||HttpStatus.SC_OK)
                        7.执行相应的交互操作。                                如:获取响应成功后返回的结果:  String message=EntityUtils.toString(response.getEntity()); 可根据返回的结果集判断与服务器数据交互是否成功    
                      2)服务端:使用Servlet来接收以及处理数据
                              
                    二、使用Post方式连接
                        步骤:
                        1)客户端:
                        1.添加权限                android.permission.INTERNET
                        2.定义访问路径            private satic find String lj="http://xxx.xx.xx.xx/xx"
                        3.实例请求方式(HttpPost)   HttpPost p=new Httpget(路径lj)
                        4.对传值参数进行封装         List<NameValuePair> params = new ArrayList<NameValuePair>();  
                        5.向封装好的集合中添值    params.add(newBasicNameValuePair(key,vales))        
                        6.设置请求参数项               request.setEntity(new UrlEncodedFormEntity(集合[params],编码格式[ HTTP.UTF_8]));   
                        7.实例化HttpClient            HttpClient ht=getHttpClient();
                        8.通过HttpClient的execute[执行](请求方式),检索HttprespondHttpResponse rs=ht.execute(params)
                        9.获取respond的状态,判断是否与服务端响应成功  if(rs.getStatusLine().getStatusCode()==200||HttpStatus.SC_OK)
                        10.执行相应的交互操作。 如:获取响应成功后返回的结果:String message=EntityUtils.toString(response.getEntity()); 可根据返回的结果集判断与服务器数据交互是否成功    
                         2)服务端:使用Servlet来接收以及处理数据
                              
                    三、使用Socket方式连接
                        步骤:
                            一.客户端
                            1.实例化Socket              Socket s=new Socket("Ip地址",端口)
                            2.实例化数据输出流            DataOutputStream dou=new DataOutputStream(s.getOutputStream())
                            3.获取Socket流以进行读写     PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);  
                                    这里涉及了三个类:socket.getOutputStream得到socket的输出字节流,OutputStreamWriter是字节流向字符流转换的桥梁,BufferWriter是字符流,然后再包装进PrintWriter。
                            4.对Socket进行读写      
                            5.关闭Socket和数据流        s.close(); out.close();
                         二、服务端
                                服务端与客户端类似。只是第一步是实例化ServerSocket 然后执行accept()方法得到Socket
                                    例:ServerSocket ss=new ServerSocket(8888); Socket s=ss.accept();

0 0
原创粉丝点击