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。