基于Jave的Web服务工作机制(2)

你的幸福我能满

你的幸福我能满

2016-02-19 14:01

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐基于Jave的Web服务工作机制(2),无聊中的都看过来。
HTTP响应(Responses)

 

  和请求类似,一个HTTP响应也包含三个部分:

  协议状态 代码描叙(Protocol-Status code-Description)
  响应包头(Response headers)
  实体(Entity body)
  下面是HTTP响应的一个简单范例:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  HTTP/1.1 200 OK
  Server: Microsoft-IIS/4.0
  Date: Mon, 3 Jan 1998 13:13:33 GMT
  Content-Type: text/html
  Last-Modified: Mon, 11 Jan 1998 13:23:42 GMT
  Content-Length: 112

  html
  head
  titleHTTP Response Example/title/headbody
  Welcome to Brainy Software
  /body
  /html

  第一行的响应包头和上面的请求包头很相似。 第一行告诉我们,协议是使用的HTTP1.1,响应请求已成功(200表示成功),一切已OK。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  响应包头和请求包头相似,也包含一些有用的信息。响应的实体是HTML那一部分的内容。包头和实体也都是被CRLF序列分离开的。

  Socket类

  套接字(socket)是网络连接的一个端点。它使得应用程序能够通过网络进行读和写的操作。 通过在连接上发送和接受字节流,两个位于不同计算机的软件程序能够彼此相互通讯。为了发送一个消息到另一个程序,你需要知道对方机器的IP地址和socket端口号。在JAVA中,一个socket是由java.net.Socket类所表示的。

  为了创建一个套接字,你可以使用Socket类的构造函数来完成。 这些构造函数接受主机名和端口:

  public Socket(String host, int port)
  host表示远程计算机名或者IP地址,port表示该远程应用的端口号。比如,要在80端口连接到yahoo.com,你需要构造下面的socket:

  new Socket("yahoo.com", 80);
  一旦你成功创建了一个Socket类的实例,就可以使用它来发送和接受字节流了。 要发送字节流,必须首先调用Socket类的getOutputStream 方法来获得一个java.io.OutputStream对象。要发送一个文本到远程应用程序,经常要构造一个从OutputStream对象返回的java.io.PrintWriter对象。要接收连接另一端的字节流,要调用Socket类的getInputStream方法,该方法是从 java.io.InputStream返回的。

  下面的程序段创建了一个socket,和本地HTTP服务器(127.0.0.1代表本地)进行通讯,发送一个HTTP请求,然后从服务器接收一个响应。它创建了一个StringBuffer 来保存响应,并将它打印到控制台。

  Socket socket  = new Socket("127.0.0.1", "8080");
  OutputStream os = socket.getOutputStream();
  boolean autoflush = true;
  PrintWriter out = new PrintWriter( socket.getOutputStream(), autoflush );
  BufferedReader in = new BufferedReader(
  new InputStreamReader( socket.getInputStream() ));

  // send an HTTP request to the web server
  out.println("GET /index.jsp HTTP/1.1");
  out.println("Host: localhost:8080");
  out.println("Connection: Close");
  out.println();

  // read the response
  boolean loop  = true;
  StringBuffer sb = new StringBuffer(8096);

  while (loop) {
  if ( in.ready() ) {
    int i=0;
    while (i!=-1) {
      i = in.read();
      sb.append((char) i);
    }
    loop = false;
  }
  Thread.currentThread().sleep(50);
}

  // display the response to the out console
  System.out.println(sb.toString());
  socket.close();

  要从服务器得到一个确切的响应,你需要发送一个遵循HTTP协议规则的HTTP请求。如果你阅读了上面的那段"超文本传输协议(HTTP)" ,那么你就应该能够理解刚才上面建立socket的代码。

展开更多 50%)
分享

猜你喜欢

基于Jave的Web服务工作机制(2)

Web开发
基于Jave的Web服务工作机制(2)

基于Jave的Web服务工作机制(7)

Web开发
基于Jave的Web服务工作机制(7)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

基于Jave的Web服务工作机制(6)

Web开发
基于Jave的Web服务工作机制(6)

基于Jave的Web服务工作机制(4)

Web开发
基于Jave的Web服务工作机制(4)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

基于Jave的Web服务工作机制(5)

Web开发
基于Jave的Web服务工作机制(5)

基于Jave的Web服务工作机制(3)

Web开发
基于Jave的Web服务工作机制(3)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用Validator简化Struts的开发过程

用Validator简化Struts的开发过程

3.6 ADO 存取数据库时如何分页显示

3.6 ADO 存取数据库时如何分页显示
下拉加载更多内容 ↓