protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("application/x-javascript;charset=utf-8");
InterventionVO target = dao.findById(200001001L);
PrintWriter writer = response.getWriter();
//"application/x-javascript"
writer.append("'name':'张3'");
System.out.println(JSON.toJSON(target));
writer.flush();
writer.close();
}
以上是服务端代码 (URL 为 interventionService/testJson.service)
客户端需要链接时可以这样使用Socket访问这个URL并获得这个链接
public static void main2(String[] args) throws IOException {
Socket s = new Socket("192.168.0.198", 8080);
OutputStream outputStream = s.getOutputStream();
PrintWriter p = new PrintWriter(outputStream);
p.write("GET /interventionService/testJson.service HTTP/1.1\n" +
"Host: localhost:8080\n" +
"Connection: keep-alive\n" +
"User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5\n" +
"Accept: text/html,application/xhtml+xml,application/xml,application/x-javascript;q=0.9,*/*;q=0.8\n" +
"Accept-Encoding: gzip,deflate,sdch\n" +
"Accept-Language: zh-CN,zh;q=0.8\n" +
"Accept-Charset: UTF-8,*;q=0.5\n" +
"\r\n\r\n\r\n");
p.flush();
InputStream inputStream = s.getInputStream();
String str = readInputStream(Charset.forName("UTF-8"), inputStream);
System.out.println(str);
s.close();
}
这样就可以了,需要有三点注意的
1. readInputStream就是读取数据的函数自行编写即可.
2. 如果需要带Cookie 可以在write里多加一句"Cookie:xxxxxx“。(提示一下,可以做跨域免登录)
3. 在writer的末尾端必须有3行换行且必须是\r\n (HTTP协议如此规定).
别忘了在write之后flush。