【问题标题】:Error: java.lang.IllegalArgumentException: Request must not be null错误:java.lang.IllegalArgumentException:请求不能为空
【发布时间】:2023-03-25 01:05:01
【问题描述】:

我使用 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: 请求不能为空。

我该如何解决?

【问题讨论】:

    标签: basic4android


    【解决方案1】:

    你必须:

    1. 编译时在浏览器中加载 asmx 文件
    2. 点击方法
    3. 复制后肥皂
    4. 复制标头(内容类型和 SOAPaction)
    5. 在 B4A 中使用肥皂生成多行字符串文字(例如 stringliteral = $"..."$)
    6. 在此字符串文字中将字符串查询替换为值“mysql=insert into users (facebook_id) values ('ersdxc')”,您必须使用 stringutils 进行 urlencode 并在 asmx 端进行 urldecode。
    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 库。使用这两个库时代码没有区别。

    【讨论】:

      猜你喜欢
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多