webservice:使用urlConnection操作webservice
先来两道小题目 1, public class ABC{ ??? publicvoid abc(Object aa) { ?????? System.out.println(“object...”); ??? } ??? publicvoid abc(String aa) { ?????? System.out.println(“aaaaaaaaaaaaa”); ??? } ??? publicstatic void main(String[] args) { ?????? ABCa = new ABC(); ?????? a.abc(null); ??? } } 问:调用哪个方法? 答:调用的是abc(String aa)方法,Java是较小优先原则,因为String是Object的子类,所以调用的是String。 ? 2,面试题: public class BCD{ ??? publicstatic void main(String[] args) { ?????? for(;;) ?????????? Object o = new Object(); ??? } } 问:红色部分报错,为什么? 在for循环外面加上大括号,(不是死循环,也会出现这种情况) public class BCD{ ??? publicstatic void main(String[] args) { ?????? for(;;){ ?????????? Object o = new Object(); ?????? } ??? } } 就不报错了,为什么? 3,通过urlConnection的方式获取服务器提供的服务。 public class UrlConnDemo { @Test public void getAll() throws Exception{ URL url = new URL("http://192.168.1.254:2345/hello"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Content-Type","text/xml;charset=UTF-8"); con.setDoInput(true);//可以从服务器上读取消息 con.setDoOutput(true);//可以向服务器与参数 //读取xml文件,根据xml文件中的信息来访问服务器提供的服务, //比如,通过a.xml文件可以知道访问那个方法 InputStream in = UrlConnDemo.class.getResourceAsStream("a.xml"); ByteArrayOutputStream bt= new ByteArrayOutputStream(); int len = 0; byte[] by = new byte[1024]; while(-1!=(len=in.read(by))){ bt.write(by,len); } in.close(); OutputStream out = con.getOutputStream(); out.write(bt.toByteArray()); out.close(); //从服务器上读取数据 InputStream is = con.getInputStream(); // BufferedReader br = new BufferedReader(new InputStreamReader(is)); // String line = null; // while(null!=(line=br.readLine())){ // System.err.println(line); // } SAXReader sax = new SAXReader(); Document dom = sax.read(is); List<Element> users = dom.selectNodes("//return"); for(Element el:users){ String id = el.elementText("id"); String nm = el.elementText("name"); System.err.println("id:"+id+","+nm); } is.close(); con.disconnect(); } } 以下是a.xml文件的内容: <it:Envelope xmlns:it="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://ws.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <it:Body> <q0:getAll /> //调用getAll()方法 </it:Body> </it:Envelope> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- macos – 如何使用Shell在MAC OSX中逐个启动dmg?
- Angular 4 Ngx-datatable Filter非工作对象为null但是被访问
- Bootstrap整体框架之JavaScript插件架构
- twitter-bootstrap – Bootstrap模式不会出现在Meteor中
- Scala中的“call-cc”模式?
- AngularJs $setPristine重置窗体
- bash – 将秒数转换为小时,分钟,秒
- webservice 异步调用与控件操作
- 由于“TypeError:undefined不是函数”,sbt和scala.js(使用
- Angular 4.3 HttpClient不发送Authorization标头