📄 httpreplyhdr.java
字号:
/******************************************************************
*** File HttpReplyHdr.java
***
***/
import java.net.*;
import java.io.*;
//
// Class: HttpReplyHdr
// Abstract: The headers of the server HTTP reply.
//
public class HttpReplyHdr { static String CR="\r\n"; static String HTTP_PROTOCOL="HTTP/1.0"; static String HTTP_SERVER="Java Proxy Server"; String lastModified =""; long contentLength=0; String extraErrorString ="";/** * Sets the last modified date for a header; * * @param date A string holding an interner date * @return true */ public boolean setModifiedDate(String date) { lastModified = date; return true; }/** * Adds an extra explanation. This extra information is * Added to the http headers failure explanation. * * @param str Description to add. * @return true. */ public boolean addErrorDescription(String str) { extraErrorString = str; return true; }/** * Forms a http ok reply header * * @param ContentType The mime-type of the content * @return A string with the header in it */ public String formOk(String ContentType,long ContentLength) {
contentLength = ContentLength; String out =new String(); out += HTTP_PROTOCOL + " 200 Ok" + CR; out += "Server: " + HTTP_SERVER + CR; out += "MIME-version: 1.0" + CR; if (0 < ContentType.length()) out += "Content-type: " + ContentType + CR; else out += "Content-Type: text/html" + CR; if (0 != contentLength) out += "Content-Length: " + Long.toString(contentLength) + CR; if (0 < lastModified.length()) out +="Last-Modified: " + lastModified + CR; out +=CR; return out; }/** * private! builds an http document describing a headers reason. * * @param Error Error name. * @param Description Errors description. * @return A string with the HTML description body */ private String formErrorBody(String Error,String Description) { String out; //Generate Error Body out ="<HTML><HEAD><TITLE>"; out += Error ; out +="</TITLE></HEAD>"; out +="<BODY><H2>" + Error +"</H2>\n"; out +="</P></H3>"; out += Description; out +="</BODY></HTML>"; return out; } /** * builds an http document describing an error. * * @param Error Error name. * @param Description Errors description. * @return A string with the HTML description body */ private String formError(String Error, String Description) { /* A HTTP RESPONCE HEADER LOOKS ALOT LIKE: * * HTTP/1.0 200 OK * Date: Wednesday, 02-Feb-94 23:04:12 GMT * Server: NCSA/1.1 * MIME-version: 1.0 * Last-modified: Monday, 15-Nov-93 23:33:16 GMT * Content-type: text/html * Content-length: 2345 * \r\n */ String body=formErrorBody(Error,Description); String header =new String(); header +=HTTP_PROTOCOL +" " + Error + CR; header +="Server: " + HTTP_SERVER + CR; header +="MIME-version: 1.0" + CR; header +="Content-type: text/html" + CR; if (0 < lastModified.length()) header +="Last-Modified: " + lastModified +CR; header +="Content-Length: " + String.valueOf(body.length())+ CR; header += CR; header += body; return header; }/** * Indicates a new file was created. * * @return The header in a string; */public String formCreated() { return formError("201 Created","Object was created"); }/** * Indicates the document was accepted. * * @return The header in a string; */public String formAccepted() { return formError("202 Accepted","Object checked in"); }/** * Indicates only a partial responce was sent. * * @return The header in a string; */public String formPartial() { return formError("203 Partial","Only partail document available"); } /** * Indicates a requested URL has moved to a new address or name. * * @return The header in a string; */public String formMoved() { //300 codes tell client to do actions return formError("301 Moved","File has moved"); }/** * Never seen this used. * * @return The header in a string; */public String formFound() { return formError("302 Found","Object was found"); }/** * The requested method is not implemented by the server. * * @return The header in a string; */public String formMethod() { return formError("303 Method unseported","Method unseported"); } /** * Indicates remote copy of the requested object is current. * * @return The header in a string; */public String formNotModified() { return formError("304 Not modified","Use local copy"); }/** * Client not otherized for the request. * * @return The header in a string; */public String formUnautorized() { return formError("401 Unathorized","Unathorized use of this service"); }/** * Payment is required for service. * * @return The header in a string; */public String formPaymentNeeded() { return formError("402 Payment required","Payment is required"); }/** * Client if forbidden to get the request service. * * @return The header in a string; */public String formForbidden() { return formError("403 Forbidden","You need permission for this service"); } /** * The requested object was not found. * * @return The header in a string; */public String formNotFound() { return formError("404 Not_found","Requested object was not found"); }/** * The server had a problem and could not fulfill the request. * * @return The header in a string; */public String formInternalError() { return formError("500 Internal server error","Server broke"); }/** * Server does not do the requested feature. * * @return The header in a string; */public String formNotImplemented() { return formError("501 Method not implemented","Service not implemented, programer was lazy"); }/** * Server is overloaded, client should try again latter. * * @return The header in a string; */public String formOverloaded() { return formError("502 Server overloaded","Try again latter"); } /** * Indicates the request took to long. * * @return The header in a string; */public String formTimeout() { return formError("503 Gateway timeout","The connection timed out"); }/** * Indicates the client's proxies could not locate a server. * * @return The header in a string; */public String formServerNotFound() { return formError("503 Gateway timeout","The requested server was not found"); }
/**
* Indicates the client is not allowed to access the object.
*
* @return The header in a string;
*/
public String formNotAllowed()
{
return formError("403 Access Denied","Access is not allowed");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -