Ошибка: java.lang.IllegalArgumentException: запрос не должен быть нулевым - PullRequest
0 голосов
/ 25 октября 2018

Я использую B4A для вызова службы ASMX, также использовал библиотеку httputils2.

Я использую следующий код для вызова службы:

Private httprequest As HttpJop
httprequest.Initialize("Job1", Me)
httprequest.PostString("http://192.168.1.104/service.asmx/query","mysql="&"insert into users (facebook_id) values ('ersdxc')")

Когда я запускаю свое приложение, я получаю эту ошибку:

java.lang.IllegalArgumentException: запрос не должен быть нулевым.

Как это исправить?

1 Ответ

0 голосов
/ 28 октября 2018

Вам нужно будет:

  1. загрузить в свой браузер файл asmx при его компиляции
  2. нажать на метод
  3. скопировать мыло сообщения
  4. копирование заголовков (content-type и SOAPaction)
  5. создание в B4A многострочного строкового литерала с мылом (например, stringliteral = $ "..." $)
  6. replace вэтот строковый литерал строковый запрос со значением «mysql = insert to users (facebook_id) values ​​('ersdxc')» », который вам нужно будет urlencode с помощью stringutils и на стороне asmx urldecode.
  7. опубликовать строковый литералс заголовками fe

    Private httprequest As HttpJop
    httprequest.Initialize("Job1", Me)
    httprequest.PostString("http://192.168.1.104/service.asmx/query", stringliteral)
    httprequest.GetRequest.SetContentType("text/xml; charset=utf-8")
    httprequest.GetRequest.SetHeader("SOAPAction", """REPLACE_WITH_YOUR_SOAP_ACTION_HERE""")

Обратите также внимание, что HttpUtils2 устарел, и вам придется использовать библиотеки OkHttp и OkHttpUtils2.При использовании этих двух библиотек нет никакой разницы в коде.

...