httprequestline.java

来自「RFC 1945 Http1.0协议实现。对协议进行了完整面向对象设计」· Java 代码 · 共 88 行

JAVA
88
字号
/**
 * 
 */
package edu.sysu.http.impl;

import java.net.URI;

import edu.sysu.http.util.HttpGrammarException;

/**
 * @author Administrator
 * 
 */
public class HttpRequestLine {
	private HttpMethod method = new HttpMethod();

	private URI uri;

	private HttpVersion version = null;

	/**
	 * 
	 */
	public HttpRequestLine() {
		// TODO Auto-generated constructor stub
	}

	public HttpRequestLine(String method, String uri)
			throws HttpGrammarException {
		// TODO Auto-generated constructor stub
		this.setMethod(method);
		this.setURI(uri);
	}

	public void setMethod(String method) throws HttpGrammarException {
		this.method.setMethod(method);
	}
	
	public HttpMethod getMethod() {
		return method;
	}

	public void setURI(String uri) {
		this.uri = URI.create(uri);
	}

	public URI getUri() {
		return uri;
	}

	public String toString() {
		return this.method.toString() + HttpRules.SP + this.uri.toString()
				+ HttpRules.CR + HttpRules.LF;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			HttpRequestLine request = new HttpRequestLine("GET",
					"http://127.0.0.1:8080/index.htm");
			System.out.println(request.toString());
			URI uri = request.getUri();
			System.out.println(uri.getAuthority());
			System.out.println(uri.getHost());
			System.out.println(uri.getPath());
			System.out.println(uri.getPort());
			
			System.out.println("");

			HttpRequestLine request1 = new HttpRequestLine("GET",
					"/");
			System.out.println(request1.toString());
			URI uri1 = request1.getUri();
			System.out.println(uri1.getAuthority());
			System.out.println(uri1.getHost());
			System.out.println(uri1.getPath());
			System.out.println(uri1.getPort());
		} catch (HttpGrammarException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?