Italian azzarola, query non digerita da httpclient

ivanomonti

Expert
Licensed User
Longtime User
io qui mi incazzo sempre, buon giorno a tutti e per chi è in vacanza al mare si faccia un bagno anche per me :) veniamo al dunque;

Invio la query e mi viene il problema in fase di compilazione, se non invio la query perfetto ma inutile... dovè il carattere illegale se non il mio fottuto carattere di M. :)

Mi date un occhiata per cortesia.

B4X:
Module_setting.loadListCategory("SELECT category, subcategory FROM `category`")

Sub loadListCategory(Query As String)
   http.Initialize("httpCategory")
  Dim req As HttpRequest
  req.InitializePost2("http://www.cazzvu.eu/blablacazz/cXVlcnlsaWJlcmE=.php?q=" & Query, Query.GetBytes("UTF8"))
  http.Execute(req, 1)
End Sub

B4X:
Installing file.
PackageAdded: package:b4a.example
** Activity (main) Create, isFirst = true **
java.lang.IllegalArgumentException: Illegal character in query at index 61: http://www.ivanomonti.eu/apiweb/cXVlcnlsaWJlcmE=.php?q=SELECT category, subcategory FROM `category`
   at java.net.URI.create(URI.java:727)
   at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
   at anywheresoftware.b4a.http.HttpClientWrapper$HttpUriRequestWrapper.InitializePost2(HttpClientWrapper.java:395)
   at b4a.example.module_setting._loadlistcategory(module_setting.java:265)
   at b4a.example.main._activity_create(main.java:341)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at anywheresoftware.b4a.BA.raiseEvent2(BA.java:174)
   at b4a.example.main.afterFirstLayout(main.java:98)
   at b4a.example.main.access$100(main.java:16)
   at b4a.example.main$WaitForLayout.run(main.java:76)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5103)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
   at dalvik.system.NativeStart.main(Native Method)
 

Picena Informatica

Active Member
Licensed User
Longtime User
"`" (alt 96) è diverso da '
E, comunque, non servono virgolette
"SELECT category, subcategory FROM category"
 

Gianni M

Well-Known Member
Licensed User
Longtime User
hai una TABLE category e due CAMPI category e subcategory?
in accordo con picena ... senza vigolette
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Potrebbe anche essere che non digerisce gli spazi (molto più probabile), per cui sostituisci gli spazi con il %20
B4X:
http://www.ivanomonti.eu/apiweb/cXVlcnlsaWJlcmE=.php?q=SELECT%20category,%20subcategory%20FROM%20`category`

Se funziona dovrai però implementare una cosa più ampia, cioè dovrai fare il URLencode, che toglie appunto i caratteri non validi dei parametri (ad esempio il carattere &, ?, e via così) e lo codifica nel codice corretto.


Sergio
 
Last edited:

Picena Informatica

Active Member
Licensed User
Longtime User
non passare mai query ma solo parametri.Altrimenti ti possono smontare tutto via web (strutture, dati e magari anche password) con le giuste query.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Per fare l'URLencode puoi utilizzare la funzione EncodeUrl presente nella libreria StringUtils
 
Top