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.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(String)
andexecutePost(String, String, String)
- for example, setting a custom read timeout or request header.executeDelete(String url, String headerAccessToken)
Given a Facebook API endpoint URL and parameter string, execute aDELETE
to the endpoint URL.executeGet(String url)
Given a Facebook API endpoint URL, execute aGET
against it.executeGet(String url, String headerAccessToken)
Given a Facebook API endpoint URL, execute aGET
against it.executePost(String url, String parameters, String headerAccessToken)
Given a Facebook API endpoint URL and parameter string, execute aPOST
to the endpoint URL.executePost(String url, String parameters, List<BinaryAttachment> binaryAttachments, String headerAccessToken)
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, String headerAccessToken)
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:
url
- The URL to make aGET
request for, including URL parameters.headerAccessToken
- access token used in the header. May benull
, if access token is already part of the query string- Returns:
- HTTP response data.
- Throws:
IOException
- If an error occurs while performing theGET
operation.
-
executeGet
Description copied from interface:WebRequestor
Given a Facebook API endpoint URL, execute aGET
against it.- Specified by:
executeGet
in interfaceWebRequestor
- Parameters:
url
- The URL to make aGET
request for, including URL parameters.- Returns:
- HTTP response data.
- Throws:
IOException
- If an error occurs while performing theGET
operation.
-
executePost
public WebRequestor.Response executePost(String url, String parameters, String headerAccessToken) throws IOExceptionDescription 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:
url
- The URL toPOST
to.parameters
- The parameters to bePOST
ed.headerAccessToken
- access token used in the header. May benull
, if access token is already part of the query string- Returns:
- HTTP response data.
- Throws:
IOException
- If an error occurs while performing thePOST
.
-
executePost
public WebRequestor.Response executePost(String url, String parameters, List<BinaryAttachment> binaryAttachments, String headerAccessToken) throws IOExceptionDescription 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:
url
- The URL toPOST
to.parameters
- The parameters to bePOST
ed.binaryAttachments
- Optional binary attachments to be included in thePOST
body (e.g. photos and videos).headerAccessToken
- access token used in the header. May benull
, if access token is already part of the query string- Returns:
- HTTP response data.
- Throws:
IOException
- If an error occurs while performing thePOST
.
-
initHeaderAccessToken
protected void initHeaderAccessToken(HttpURLConnection httpUrlConnection, String headerAccessToken) -
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(String)
andexecutePost(String, String, String)
- 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 IOExceptionWrites 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
public WebRequestor.Response executeDelete(String url, String headerAccessToken) throws IOExceptionDescription 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:
url
- The URL to submit theDELETE
to.headerAccessToken
- access token used in the header. May benull
, if access token is already part of the query string- 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 fieldsx-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
-