HttpUrlConnection get方式通信

       StringBuffer str=new StringBuffer(URLStr+"?");
            Map<String,Object> requestParamsMap = new HashMap<String, Object>();  
            requestParamsMap.put("type",0);
            Iterator it=requestParamsMap.entrySet().iterator();
            while(it.hasNext()){
                Map.Entry<String,Object> element=(Entry<String, Object>) it.next();
                str.append(element.getKey());
                str.append("=");
                str.append(element.getValue());
                str.append("&");
            }
            if(str.length()>0)
                str.deleteCharAt(str.length()-1);//删除末尾多余的一个&
       try { URL url=new java.net.URL(str.toString()); URLConnection connection=url.openConnection(); HttpURLConnection con=(HttpURLConnection)connection; con.setDoOutput(false); //get请求能使用缓存 con.setUseCaches(true); con.setRequestMethod("GET"); con.connect(); BufferedReader reader=new BufferedReader(new InputStreamReader(con.getInputStream())); String line=null; String result=""; while((line=reader.readLine())!=null){ result+=line; } System.out.println(result); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }

  因为是get请求,需要把请求参数附加到url中,这里用到了hashmap,将绑定的参数放置在map对象中,然后依次遍历取出map对象,按照顺序填充url,然后执行url.openConnection()操作获取URLConnection对象。

  接下来把上面的URLconnection对象强转为HttpUrlConnection对象。con.setDoOutput(false)表明不进行output操作。con.setRequestMethod("GET")表明发起的是GET请求。

  最后一步是获取服务器返回的数据,这里用到了BufferedReader ,将返回的inputstream对象缓存好,最后利用BufferedReader 对象的read方法,将buffer中的数据按照行的顺序提取出来,保存在result。

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。