public class HTTPPacket extends Object
| Constructor and Description |
|---|
HTTPPacket()
Creates a new HTTP packet with default settings.
|
HTTPPacket(HTTPPacket httpPacket)
Creates a copy of an existing HTTP packet.
|
HTTPPacket(InputStream in)
Creates an HTTP packet by parsing from an input stream.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addHeader(HTTPHeader header) |
void |
addHeader(String name,
String value) |
void |
clearHeaders() |
String |
getCacheControl() |
String |
getCharSet() |
String |
getConnection() |
byte[] |
getContent()
Gets the content of this HTTP packet.
|
InputStream |
getContentInputStream() |
String |
getContentLanguage() |
long |
getContentLength() |
long[] |
getContentRange() |
long |
getContentRangeFirstPosition() |
long |
getContentRangeInstanceLength() |
long |
getContentRangeLastPosition() |
String |
getContentString()
Gets the content of this HTTP packet as a string.
|
String |
getContentType() |
String |
getDate() |
protected String |
getFirstLine()
Gets the first line of the HTTP packet.
|
protected String |
getFirstLineToken(int num)
Gets a specific token from the first line using HTTP request line delimiters.
|
HTTPHeader |
getHeader(int n) |
HTTPHeader |
getHeader(String name) |
String |
getHeaderString() |
String |
getHeaderValue(String name) |
String |
getHost() |
int |
getIntegerHeaderValue(String name) |
long |
getLongHeaderValue(String name) |
int |
getNHeaders() |
String |
getServer() |
String |
getStringHeaderValue(String name) |
String |
getStringHeaderValue(String name,
String startWidth,
String endWidth) |
String |
getTransferEncoding() |
String |
getVersion()
Gets the HTTP version of this packet.
|
boolean |
hasConnection() |
boolean |
hasContent()
Checks if this HTTP packet has content.
|
boolean |
hasContentInputStream() |
boolean |
hasContentRange() |
boolean |
hasFirstLine() |
boolean |
hasHeader(String name) |
boolean |
hasTransferEncoding() |
void |
init()
Initializes the HTTP packet to empty state.
|
boolean |
isChunked() |
boolean |
isCloseConnection() |
boolean |
isKeepAliveConnection() |
boolean |
read(HTTPSocket httpSock)
Reads and parses HTTP packet from a socket.
|
protected void |
set(HTTPPacket httpPacket)
Copies all data from another HTTP packet to this packet.
|
protected boolean |
set(HTTPSocket httpSock)
Parses HTTP packet data from an HTTP socket.
|
protected boolean |
set(InputStream in)
Parses HTTP packet data from an input stream including content.
|
protected boolean |
set(InputStream in,
boolean onlyHeaders)
Parses HTTP packet data from an input stream.
|
void |
setCacheControl(int value) |
void |
setCacheControl(String directive) |
void |
setCacheControl(String directive,
int value) |
void |
setConnection(String value) |
void |
setContent(byte[] data) |
void |
setContent(byte[] data,
boolean updateWithContentLength)
Sets the content of this HTTP packet.
|
void |
setContent(String data)
Sets the content of this HTTP packet from a string.
|
void |
setContent(String data,
boolean updateWithContentLength) |
void |
setContentInputStream(InputStream in) |
void |
setContentLanguage(String code) |
void |
setContentLength(long len) |
void |
setContentRange(long firstPos,
long lastPos,
long length) |
void |
setContentType(String type) |
void |
setDate(Calendar cal) |
void |
setHeader(HTTPHeader header) |
void |
setHeader(String name,
int value) |
void |
setHeader(String name,
long value) |
void |
setHeader(String name,
String value) |
void |
setHost(String host,
int port) |
void |
setIntegerHeader(String name,
int value) |
void |
setLongHeader(String name,
long value) |
void |
setServer(String name) |
void |
setStringHeader(String name,
String value) |
void |
setStringHeader(String name,
String value,
String startWidth,
String endWidth) |
void |
setTransferEncoding(String value) |
void |
setVersion(String ver)
Sets the HTTP version for this packet.
|
public HTTPPacket()
public HTTPPacket(HTTPPacket httpPacket)
httpPacket - HTTP packet to copypublic HTTPPacket(InputStream in)
in - input stream containing the HTTP packet datapublic void addHeader(HTTPHeader header)
public void clearHeaders()
public String getCacheControl()
public String getCharSet()
public String getConnection()
public byte[] getContent()
public InputStream getContentInputStream()
public String getContentLanguage()
public long getContentLength()
public long[] getContentRange()
public long getContentRangeFirstPosition()
public long getContentRangeInstanceLength()
public long getContentRangeLastPosition()
public String getContentString()
public String getContentType()
public String getDate()
protected String getFirstLine()
For requests, this returns the request line containing method, URI, and HTTP version. For responses, this returns the status line containing HTTP version, status code, and reason phrase.
protected String getFirstLineToken(int num)
This method parses the first line (request line or status line) and returns the token at the specified position. Tokens are separated by spaces.
For request lines: token 0 = method, token 1 = URI, token 2 = HTTP version
For status lines: token 0 = HTTP version, token 1 = status code, token 2 = reason phrase
num - the zero-based token position to retrievepublic HTTPHeader getHeader(int n)
public HTTPHeader getHeader(String name)
public String getHeaderString()
public String getHost()
public int getIntegerHeaderValue(String name)
public long getLongHeaderValue(String name)
public int getNHeaders()
public String getServer()
public String getStringHeaderValue(String name, String startWidth, String endWidth)
public String getTransferEncoding()
public String getVersion()
public boolean hasConnection()
public boolean hasContent()
public boolean hasContentInputStream()
public boolean hasContentRange()
public boolean hasFirstLine()
public boolean hasHeader(String name)
public boolean hasTransferEncoding()
public void init()
public boolean isChunked()
public boolean isCloseConnection()
public boolean isKeepAliveConnection()
public boolean read(HTTPSocket httpSock)
httpSock - socket containing the HTTP packet dataprotected void set(HTTPPacket httpPacket)
This method performs a deep copy by copying the first line, all headers, and content from the source packet. The target packet is first cleared before copying.
httpPacket - the source HTTP packet to copy fromprotected boolean set(HTTPSocket httpSock)
This is a convenience method that extracts the input stream from the HTTP socket and parses the complete HTTP packet including content.
httpSock - the HTTP socket containing the HTTP packet dataprotected boolean set(InputStream in)
This is a convenience method that calls set(InputStream, boolean) with
onlyHeaders set to false.
in - the input stream containing HTTP packet dataprotected boolean set(InputStream in, boolean onlyHeaders)
This method reads and parses the HTTP packet including the first line, headers, and optionally the content body. It handles special cases such as:
in - the input stream containing HTTP packet dataonlyHeaders - if true, only parse headers and skip content bodypublic void setCacheControl(int value)
public void setCacheControl(String directive)
public void setCacheControl(String directive, int value)
public void setConnection(String value)
public void setContent(byte[] data)
public void setContent(byte[] data,
boolean updateWithContentLength)
data - content data as byte arrayupdateWithContentLength - whether to update Content-Length header automaticallypublic void setContent(String data)
data - content data as stringpublic void setContent(String data, boolean updateWithContentLength)
public void setContentInputStream(InputStream in)
public void setContentLanguage(String code)
public void setContentLength(long len)
public void setContentRange(long firstPos,
long lastPos,
long length)
public void setContentType(String type)
public void setDate(Calendar cal)
public void setHeader(HTTPHeader header)
public void setHeader(String name, int value)
public void setHeader(String name, long value)
public void setHost(String host, int port)
public void setIntegerHeader(String name, int value)
public void setLongHeader(String name, long value)
public void setServer(String name)
public void setStringHeader(String name, String value, String startWidth, String endWidth)
public void setTransferEncoding(String value)
public void setVersion(String ver)
ver - HTTP version string (e.g., "1.0", "1.1")