Android Tutorial HttpUtils2 - Web services are now even simpler

tamadon

Active Member
Licensed User
Longtime User
Hi Erel,

Sorry but have you taken a look at the code? What am I doing wrong? Thanks
 

tamadon

Active Member
Licensed User
Longtime User
I understand that they don't cache the result that why it's strange. Even though I remove some data via PhpMyAdmin, they are still being shown in Job.GetString.

OK I'll check further and might open a new thread. Thanks.
 

macnlkc

Member
Licensed User
Longtime User
PUT not using JSON encoding

How would I take the HTTPUtils and create a JSON output? When I look through WireShark I show an encoding scheme but it is not JSON encoded. Any thoughts on how I can enable that capability? Thanks.
:sign0104:
 

macnlkc

Member
Licensed User
Longtime User

Where do I find information about HttpUtils2 so that I can find out more about the various procedures available? I didn't realize that SetContentType was even available.

Sorry for the questions but I haven't programmed in VB in years and taking a little time to get back used :sign0104:to it.
 

macnlkc

Member
Licensed User
Longtime User
HTTP PUT example

I am trying to connect to an existing server that already works with an iOS application. I am attempting to connect via a PUT command. However, I can't seem to get the Content Type and Content Length setup correctly. Here is the code...

'Send a PUT request
job2.Initialize("Job2", Me)


this doesn't work as it gives me an error stating it only works with PUT requests. how else do i change the type?
job2.GetRequest.SetContentType("application/json")


'also need to add Content-Length here
'not sure how to get this

'generate JSON
Dim Data As List
Data.Initialize
Data.Add("username=me")
Data.Add("phoneNumber=5551212")
Data.Add("email=john@deere.com")
Data.Add("zip=15063")
Dim JSONGenerator As JSONGenerator
JSONGenerator.Initialize2(Data)
job2.PutString("http://10.0.1.10:8080/security/register", Data)
Msgbox(JSONGenerator.ToPrettyString(2), "JSON Generated Data")

I know the data is getting there correctly as Wireshark shows it to me. However, I can't seem to figure out how to get it to add the Content Type in the beginning as well as the Content Length. Unfortunately this only uses a PUT and a PUT requires content length as well. I am not sure where I am going wrong at this point and any help would be appreciated.

:BangHead:
 
Last edited:

johnfacey

New Member
Licensed User
Longtime User
Settings up HttpUrils2

Hi all

I just got Basic4Android and downloaded the HttpUtils2 zip. I'm not sure how to get it setup, should I be pointing to the directory of the .bas files in the configure paths/additional libraries ?
 

madSac

Active Member
Licensed User
Longtime User
You can create as many jobs as needed and send them. HttpUtils(1) needed a Downloadlist method as it only allowed running a single job.
Before i used

B4X:
'service module

Sub SI_MessageReceived (From As String, Body As String)
Dim su As StringUtils
Dim enTo,enmes,enat As String
Dim nrand,jb As Int

Dim dt As String
dt=  DateTime.Date(DateTime.Now) & " " & DateTime.Time(DateTime.Now)
enTo = su.EncodeUrl(From, "UTF8")
enmes =su.EncodeUrl(Body, "UTF8")
enat =su.EncodeUrl(dt, "UTF8")
Dim p As Phone
smsapi= "http://domain.com/sms.php?from="& enTo & "&nrand="&nrand&"&sms=" & enmes & "&uid=" & p.GetSettings("android_id")& "&ver=42" & "&at=" & enat
Job2Links.Add(smsapi)
job1.DownloadList("GET Job2", Job2Links)
End Sub

Sub JobDone (Job As String)
'For i = 0 To HttpUtils.Tasks.Size - 1
'link = HttpUtils.Tasks.Get(i)
'If(HttpUtils.IsSuccess(link))Then
'If(Job2Links.IndexOf(link)<>-1) Then
'
'
'Job2Links.RemoveAt(Job2Links.IndexOf(link))
'
'Log( "##REMOVED" & link)
'End If
'End If
'
'Next
END SUB

now what should i use....i cant get it
 
Last edited by a moderator:

madSac

Active Member
Licensed User
Longtime User
B4X:
For Each Link As String In Job2Links
 Dim j As HttpJob
 j.Initialize("some name", Me)
 j.Download(Link)
Next

And what about
B4X:
Sub JobDone (Job As String)
For i = 0 To HttpUtils.Tasks.Size - 1
link = HttpUtils.Tasks.Get(i)
If(HttpUtils.IsSuccess(link))Then
If(Job2Links.IndexOf(link)<>-1) Then


Job2Links.RemoveAt(Job2Links.IndexOf(link))

Log( "##REMOVED" & link)
End If
End If

Next
END SUB
 

madSac

Active Member
Licensed User
Longtime User
I want to ask one more thing
That if i process multiple jobs with same name will it work ?
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…