1.04
anywheresoftware.b4a.http.HttpClientWrapper
HttpClient
HttpClient allows you to make Http requests. Instead of using HttpClient directly it is recommended to use <link>HttpUtil2|http://www.basic4ppc.com/forum/showthread.php?p=109068</link>
modules which are much simpler to use.
process
ResponseSuccess (Response As HttpResponse, TaskId As Int)
ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)
android.permission.INTERNET
Initialize
Initializes this object.
IMPORTANT: this object should be declared in Sub Process_Globals.
EventName - The prefix that will be used for ResponseSuccess and ResponseError events.
void
EventName
java.lang.String
ExecuteCredentials
Same behavior as Execute. The UserName and Password will be used for Basic or Digest authentication.
Digest authentication is supported for GET requests and repeatable POST requests (requests with payloads based on an array of bytes).
boolean
ba
anywheresoftware.b4a.BA
HttpRequest
anywheresoftware.b4a.http.HttpClientWrapper.HttpUriRequestWrapper
TaskId
int
UserName
java.lang.String
Password
java.lang.String
SetProxy2
Sets the proxy to use for the connections, with the required credentials.
void
Host
java.lang.String
Port
int
Scheme
java.lang.String
Username
java.lang.String
Password
java.lang.String
SetHttpParameter
Sets the value of the parameter with the given name.
void
Name
java.lang.String
Value
java.lang.Object
Execute
Executes the HttpRequest asynchronously. ResponseSuccess or ResponseError events will be fired later.
Note that in many cases the Response object passed in ResponseError event will be Null.
If there is a request with the same TaskId already running then this method will return False and the new request will not be submitted.
boolean
ba
anywheresoftware.b4a.BA
HttpRequest
anywheresoftware.b4a.http.HttpClientWrapper.HttpUriRequestWrapper
TaskId
int
SetProxy
Sets the proxy to use for the connections.
Host - Proxy host name or IP.
Port - Proxy port.
Scheme - Scheme name. Usually "http".
void
Host
java.lang.String
Port
int
Scheme
java.lang.String
InitializeAcceptAll
Similar to Initialize, with one important difference. All SSL certificates will be automatically accepted.
<b>This method should only be used when trying to connect to a server located in a secured network</b>.
void
EventName
java.lang.String
IsInitialized
boolean
anywheresoftware.b4a.http.HttpClientWrapper.HttpUriRequestWrapper
HttpRequest
Holds the target URL and other data sent to the web server.
The initial time out is to 30000 milliseconds (30 seconds).
process
InitializePut
Initializes the request and sets it to be a Http Put method.
The specified InputStream will be read and added to the request.
void
URL
java.lang.String
InputStream
java.io.InputStream
Length
int
InitializePost
Initializes the request and sets it to be a Http Post method.
The specified InputStream will be read and added to the request.
void
URL
java.lang.String
InputStream
java.io.InputStream
Length
int
RemoveHeaders
Removes all headers with the given name.
void
Name
java.lang.String
InitializeDelete
Initializes the request and sets it to be a Http Delete method.
void
URL
java.lang.String
SetContentType
Sets the Mime header of the request.
This method should only be used with Post or Put requests.
void
ContentType
java.lang.String
InitializePut2
Initializes the request and sets it to be a Http Put method.
The specified Data array will be added to the request.
void
URL
java.lang.String
Data
byte[]
InitializeHead
Initializes the request and sets it to be a Http Head method.
void
URL
java.lang.String
SetContentEncoding
Sets the encoding header of the request.
This method should only be used with Post or Put requests.
void
Encoding
java.lang.String
InitializeGet
Initializes the request and sets it to be a Http Get method.
void
URL
java.lang.String
SetHeader
Sets the value of the first header with the given name. If no such header exists then a new header will be added.
void
Name
java.lang.String
Value
java.lang.String
InitializePost2
Initializes the request and sets it to be a Http Post method.
The specified Data array will be added to the request.
Unlike InitializePost this method will enable the request to retry and send the data several times in case of IO errors.
void
URL
java.lang.String
Data
byte[]
Timeout
Timeout
int
Sets the request timeout measured in milliseconds.
anywheresoftware.b4a.http.HttpClientWrapper.HttpResponeWrapper
HttpResponse
An object that holds the response returned from the server.
The object is passed in the ResponseSuccess event.
You can choose to read the response synchronously or asynchronously.
It is important to release this object when it is not used anymore by calling Release.
process
StreamFinish (Success As Boolean, TaskId As Int)
Release
Frees resources allocated for this object.
void
GetString
<b>This method is deprecated and will not work properly on Android 4+ device.</b>
Use GetAsynchronously instead.
java.lang.String
DefaultCharset
java.lang.String
GetInputStream
<b>This method is deprecated and will not work properly on Android 4+ device.</b>
Use GetAsynchronously instead.
anywheresoftware.b4a.objects.streams.File.InputStreamWrapper
GetAsynchronously
Asynchronously reads the response and writes it to the given OutputStream.
If there is a request with the same TaskId already running then this method will return False, and the response object will be released.
The StreamFinish event will be raised after the response has been fully read.
EventName - The sub that will handle the StreamFinish event.
Output - The stream from the server will be written to this stream.
CloseOutput - Whether to close the specified output stream when done.
TaskId - The task id given to this task.
Example:<code>
Sub Http_ResponseSuccess (Response As HttpResponse, TaskId As Int)
Response.GetAsynchronously("ImageResponse", _
File.OpenOutput(File.DirInternalCache, "image.jpg", False), True, TaskId)
End Sub
Sub ImageResponse_StreamFinish (Success As Boolean, TaskId As Int)
If Success = False Then
Msgbox(LastException.Message, "Error")
Return
End If
ImageView1.Bitmap = LoadBitmap(File.DirInternalCache, "image.jpg")
End Sub</code>
boolean
ba
anywheresoftware.b4a.BA
EventName
java.lang.String
Output
java.io.OutputStream
CloseOutput
boolean
TaskId
int
GetHeaders
Returns a Map object with the response headers.
Each elements is made of a key which is the header name and a value which is a list containing the values (one or more).
Example:<code>
Dim list1 As List
list1 = response.GetHeaders.Get("Set-Cookie")
For i = 0 To list1.Size - 1
Log(list1.Get(i))
Next</code>
anywheresoftware.b4a.objects.collections.Map
StatusCode
int
Returns the response Http code.
ContentLength
long
Returns the content length header.
ContentEncoding
java.lang.String
Returns the content encoding header.
ContentType
java.lang.String
Returns the content type header.
1.36
Deprecated - Replaced by OkHttp
The HTTP library allows you to communicate with web services and to download resources from the web.
As network communication can be slow and fragile this library handles the requests and responses in the background and raises events when a task is ready.