Java学习笔记04——Java网络通信

来源:互联网 发布:在哪里购买域名 编辑:程序博客网 时间:2024/06/09 22:30

一、使用Dom4j操作XML数据

1.www.dom4j.org/dom4j-1.6.1 → download。
2.将dom4j-1.6.1.jar导入到工作空间中,工程中导入。
3.使用其中DocumentHelpter类的parseText()方法将String直接转换成Document对象,使用该对象的asXML()方法直接转换为String。
*下载库中docs文件夹→index.html说明文档。


二、JSON操作

1.JSON是JavaScript对象表示法,是存储和交换文本信息的语法;比XML更小、更快、更容易解析。
2.JSON语法:数据在名称/值对中,由逗号分隔;花括号保存对象,方括号保存数组。JSON值可以是数字、字符串(用双引号表示)、逻辑值、数组、对象、null。如:{“firstName”:“John”,“lastName”:“Doe”}或者{“employees”:[
{“firstName”:“John”,“lastName”:“Doe”},
{“firstName”:“Anna”,“lastName”:“Smith”},
{“firstName”:“Peter”,“lastName”:“Jones”}]}等。
3.google-gson工具解析JSON数据,gson.jar导入到工程中。
JsonParser类创建对象的parse()方法获取JsonObject对象,用该对象的【get(属性名称)】方法后调用【getAS属性类型()】方法获取属性对应值。
4.gson.jar可以创建JSON数据,创建JsonObject对象或者JsonArray对象,通过add()方法创建关系,通过addProperty()方法赋值。调用主JsonObject对象的toString()方法可以直接将JSON数据转换成String。


三、HTTP通信

【1.使用HTTP的Get方式读取网络数据。】
URL url=new URL(真实URL即网址+向服务器传输数据);
URLConnection conn=url.openConnection();
InputStream is=conn.getInputStream();
【2.使用HTTP的Post方式读取网络数据。】
URL url=new URL(真实URL即网址);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.addRequestProperty(“encoding”,“UTF-8”);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequsetMethod(“POST”);
然后用输出流写入还需向服务器传输的数据,输入流读取数据。


四、用HttpClient进行网络通信

1.apache.org→HttpComponents→download source,将lib中的所有库导入到工程中。
2.【使用Gent方式】
HttpClient client=HttpClients.createDefault();
HttpGet get=new HttpGet(网址);
HttpResponse resp=client.execute(get);
HttpEntity entity=resp.getEntity();
String result=EntityUtils.toString(entity,“UTF-8”);
3.【使用Post方式】
HttpClient client=HttpClients.createDefault();
HttpPost=new HttpPost(真实URL);
将需要向服务器传输的数据放在一个List<BasicNameValuePair>中;
post.setEntity(new UrlEncodedFormEntity(list),“UTF-8”);
HttpResponse resp=client.execute(post);
HttpEntity entity=resp.getEntity();
String result=EntityUtils.toString(entity,“UTF-8”);


五、Socket通信

1.Socket套接字向网络发出请求或者应答网络请求。
2.建立Socket链接步骤:
服务器监听,客户端发出请求,创建和确认连接,通信。
3.Socket特点:基于TCP连接,数据传输有保障;适用于建立长时间的连接;通常应用于即时通讯。
4.ServerSocket类创建服务器Socket对象并设置端口号,并用该对象的accept方法返回Socket对象,该方法会阻塞主线程,需要放入独立的线程中。每个客户端由一个独立的线程处理。

原创粉丝点击