Package com.restfb
Class DefaultWebRequestor
java.lang.Object
com.restfb.DefaultWebRequestor
- All Implemented Interfaces:
WebRequestor
- Direct Known Subclasses:
ETagWebRequestor
Default implementation of a service that sends HTTP requests to the Facebook API endpoint.
- Author:
- Mark Allen
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.restfb.WebRequestor
WebRequestor.Request, WebRequestor.Response
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
closeQuietly
(Closeable closeable) Attempts to cleanly close a resource, swallowing any exceptions that might occur since there's no way to recover anyway.protected void
closeQuietly
(HttpURLConnection httpUrlConnection) Attempts to cleanly close anHttpURLConnection
, swallowing any exceptions that might occur since there's no way to recover anyway.protected String
createFormFieldName
(BinaryAttachment binaryAttachment) Creates the form field name for the binary attachment filename by stripping off the file extension - for example, the filename "test.png" would return "test".protected void
customizeConnection
(HttpURLConnection connection) Hook method which allows subclasses to easily customize theconnection
s created byexecuteGet(com.restfb.WebRequestor.Request)
andexecutePost(com.restfb.WebRequestor.Request)
- for example, setting a custom read timeout or request header.executeDelete
(WebRequestor.Request request) Given a Facebook API endpoint URL and parameter string, execute aDELETE
to the endpoint URL.executeGet
(WebRequestor.Request request) Given a Facebook API endpoint URL, execute aGET
against it.executePost
(WebRequestor.Request request) Given a Facebook API endpoint URL and parameter string, execute aPOST
to the endpoint URL.protected WebRequestor.Response
fetchResponse
(HttpURLConnection httpUrlConnection) protected void
fillHeaderAndDebugInfo
(HttpURLConnection httpUrlConnection) access to the current response headersProvides access to the facebook header information.protected void
initHeaderAccessToken
(HttpURLConnection httpUrlConnection, WebRequestor.Request request) boolean
returns if the binary attachment stream is closed automaticallyprotected HttpURLConnection
openConnection
(URL url) Given aurl
, opens and returns a connection to it.void
setAutocloseBinaryAttachmentStream
(boolean autocloseBinaryAttachmentStream) define if the binary attachment stream is closed automatically after sending the content to facebookprotected void
write
(InputStream source, OutputStream destination, int bufferSize) Writes the contents of thesource
stream to thedestination
stream using the givenbufferSize
.
-
Constructor Details
-
DefaultWebRequestor
public DefaultWebRequestor()
-
-
Method Details
-
executeGet
Description copied from interface:WebRequestor
Given a Facebook API endpoint URL, execute aGET
against it.- Specified by:
executeGet
in interfaceWebRequestor
- Parameters:
request
- The request data for theGET
request- Returns:
- HTTP response data.
- Throws:
IOException
- If an error occurs while performing theGET
operation.
-
executePost
Description copied from interface:WebRequestor
Given a Facebook API endpoint URL and parameter string, execute aPOST
to the endpoint URL.- Specified by:
executePost
in interfaceWebRequestor
- Parameters:
request
- The request data used for thePOST
request.- Returns:
- HTTP response data.
- Throws:
IOException
- If an error occurs while performing thePOST
.
-
initHeaderAccessToken
protected void initHeaderAccessToken(HttpURLConnection httpUrlConnection, WebRequestor.Request request) -
openConnection
Given aurl
, opens and returns a connection to it.If you'd like to pipe your connection through a proxy, this is the place to do so.
- Parameters:
url
- The URL to connect to.- Returns:
- A connection to the URL.
- Throws:
IOException
- If an error occurs while establishing the connection.- Since:
- 1.6.3
-
customizeConnection
Hook method which allows subclasses to easily customize theconnection
s created byexecuteGet(com.restfb.WebRequestor.Request)
andexecutePost(com.restfb.WebRequestor.Request)
- for example, setting a custom read timeout or request header.This implementation is a no-op.
- Parameters:
connection
- The connection to customize.
-
closeQuietly
Attempts to cleanly close a resource, swallowing any exceptions that might occur since there's no way to recover anyway.It's OK to pass
null
in, this method will no-op in that case.- Parameters:
closeable
- The resource to close.
-
closeQuietly
Attempts to cleanly close anHttpURLConnection
, swallowing any exceptions that might occur since there's no way to recover anyway.It's OK to pass
null
in, this method will no-op in that case.- Parameters:
httpUrlConnection
- The connection to close.
-
write
protected void write(InputStream source, OutputStream destination, int bufferSize) throws IOException Writes the contents of thesource
stream to thedestination
stream using the givenbufferSize
.- Parameters:
source
- The source stream to copy from.destination
- The destination stream to copy to.bufferSize
- The size of the buffer to use during the copy operation.- Throws:
IOException
- If an error occurs when reading fromsource
or writing todestination
.NullPointerException
- If eithersource
or @{code destination} isnull
.
-
createFormFieldName
Creates the form field name for the binary attachment filename by stripping off the file extension - for example, the filename "test.png" would return "test".- Parameters:
binaryAttachment
- The binary attachment for which to create the form field name.- Returns:
- The form field name for the given binary attachment.
-
isAutocloseBinaryAttachmentStream
returns if the binary attachment stream is closed automatically- Returns:
true
if the binary stream should be closed automatically,false
otherwise- Since:
- 1.7.0
-
setAutocloseBinaryAttachmentStream
define if the binary attachment stream is closed automatically after sending the content to facebook- Parameters:
autocloseBinaryAttachmentStream
-true
if theBinaryAttachment
stream should be closed automatically,false
otherwise- Since:
- 1.7.0
-
getCurrentHeaders
access to the current response headers- Returns:
- the current reponse header map
-
executeDelete
Description copied from interface:WebRequestor
Given a Facebook API endpoint URL and parameter string, execute aDELETE
to the endpoint URL.- Specified by:
executeDelete
in interfaceWebRequestor
- Parameters:
request
- The request data used for theDELETE
request.- Returns:
- HTTP response data.
- Throws:
IOException
- If an error occurs while performing theDELETE
.
-
getDebugHeaderInfo
Description copied from interface:WebRequestor
Provides access to the facebook header information.The fields
x-fb-rev
,x-fb-trace-id
andx-fb-debug
are checked and returned in a single container of the typeDebugHeaderInfo
- Specified by:
getDebugHeaderInfo
in interfaceWebRequestor
- Returns:
- container with the explained facebook debug header information
-
fillHeaderAndDebugInfo
-
fetchResponse
protected WebRequestor.Response fetchResponse(HttpURLConnection httpUrlConnection) throws IOException - Throws:
IOException
-