错误:java.lang.IllegalArgumentException:请求不能为null

时间:2018-10-25 04:39:13

标签: basic4android

我正在使用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 :(得分:0)

您将必须:

  1. 在编译时将asmx文件加载到浏览器中
  2. 单击方法
  3. 复制邮政肥皂
  4. 复制标题(内容类型和SOAPaction)
  5. 在B4A中使用肥皂生成多行字符串文字(例如stringliteral = $“ ...” $)
  6. 在此字符串文字中替换值为“ mysql = insert into users(facebook_id)values('ersdxc')”的字符串查询,您将必须使用stringutils在asmx端urldecode上进行urlencode。
  7. 在字符串文字后加上标题f.e。

    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库。使用这两个库时,代码没有什么区别。