普通用户
HTTP库 [复制链接]
小龙APP 发表于 2026-03-19 89 5

    http访问.添加请求头 ("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36")
    http访问.添加请求头 ("Accept","application/json, text/plain, */*")
    http访问.添加请求头 ("Content-Type","application/json;charset=UTF-8")
    http访问.请求方式 = "POST"
    http访问.超时 = 60
    http访问.创建连接("https://pigeon.jinritemai.com/pcbackstage/conversa")
    变量 结果 为 文本型 = http访问.发送POST请求("{\"keyword\":\"987654321\",\"user_search_type\":3,\"online_after_key\":\"\",\"offline_after_key\":\"\"}","utf-8")
    调试输出(结果)
    

请问这个写法 怎么会报错 空指针 

 java.lang.NullPointerException: Attempt to invoke virtual method 'void java.net.HttpURLConnection.addRequestProperty(java.lang.String, java.lang.String)' on a null object reference (AndroidRuntime)


用 发送POST数据() 没有协议头可以带  

用OK 他是在另外的里面返回 我想在这里直接返回数据

官方技术组 2026-03-19

您的需求主要是异步顺序处理数据的场景,必须要等上一步的结果获取后,再执行后续需求,两种方案可以实现您的需求。

方案1:使用HTTP组件

在子线程中使用同步顺序执行代码获取数据,ID获取后,再请求其它内容。

变量 http访问 = 创建 HTTP()
' 设置属性参数值...
异步执行首
    变量 json1  文本型 = http访问.发送POST请求("665","utf-8")
    ' 取出json1的ID
    ' 然后使用http创建新的要请求的连接,如果要设置参数也需要处理
    ' 如果不需要处理请求的上下文,这里也可以直接创建一个新的 HTTP 对象请求
    变量 查询资料  文本型 = http访问或新http对象.发送POST请求("665","utf-8")
    ' 将资料和json1组合起来...
异步执行尾

方案2:使用异步网络操作组件

在请求回调中,继续发送请求,请求的结果又会返回到回调中,通过请求标记判断是那个请求。

事件 按钮_测试.被单击(来源对象  视图)
    变量 data = 创建 哈希表()
    data.添加项目("uid","1")
    data.添加项目("uname","zhangsan")
    异步网络操作1.发送POST请求("查ID","获取ID的地址",data,"UTF-8",异步操作回调)
结束 事件

定义 异步操作回调  异步网络操作.请求完毕回调
    事件 请求发送成功(标记  文本型,响应头  哈希表,返回数据  字节型[])
	' 根据标记判断的是哪一个请求
	如果(标记 == "查ID")
            ' 获取json里面的id查询资料
            变量 data2 = 创建 哈希表()
	    data2.添加项目("uid","1")
	    data2.添加项目("uname","zhangsan")
            ' 这里的请求会回到这个回调代码块里面
            异步网络操作1.发送POST请求("查资料","查资料的URL地址",data2,"UTF-8",异步操作回调)
        否则 如果(标记 == "查资料")
            ' 用返回的数据和上一步JSON组合
            
        结束 如果
    结束 事件
    事件 请求发送失败(标记  文本型,响应头  哈希表,返回数据  字节型[],错误信息  文本型)
	变量 请求失败信息 = $"请求标记:{标记} 请求发送失败;错误信息:{错误信息}"
        调试输出(请求失败信息)
    结束 事件
结束 定义
回复
小龙APP 2026-03-19
引用 @Course 的回复:

您好,函数调用顺序错误了,必须先创建连接后再调用其它函数。

正确示例:

变量 http访问 = 创建 HTTP()
' 必须先调用该函数
http访问.创建连接("https://pigeon.jinritemai.com/pcbackend/conversa")
http访问.超时 = 60
http访问.请求方式 = "POST"
http访问.添加请求头("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36")
http访问.添加请求头("Accept","application/json, text/plain, */*")
http访问.添加请求头("Content-Type","application/json;charset=UTF-8")
' 发送任何网络请求都是耗时操作,应该放在子线程中执行
异步执行首
    变量 请求结果  文本型 = http访问.发送POST请求("665","utf-8")
到主线程
    标签1.标题 = 请求结果
异步执行尾

组件“HTTP.java”源码位置:VcnStudio安装目录\sdk\android\components\primary\class\HTTP.java

异步执行了  结果还没来 数据 json已经解析下一个 我想返回之后在解析下一个

回复
小龙APP 2026-03-19
引用 @Course 的回复:

您好,函数调用顺序错误了,必须先创建连接后再调用其它函数。

正确示例:

变量 http访问 = 创建 HTTP()
' 必须先调用该函数
http访问.创建连接("https://pigeon.jinritemai.com/pcbackend/conversa")
http访问.超时 = 60
http访问.请求方式 = "POST"
http访问.添加请求头("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36")
http访问.添加请求头("Accept","application/json, text/plain, */*")
http访问.添加请求头("Content-Type","application/json;charset=UTF-8")
' 发送任何网络请求都是耗时操作,应该放在子线程中执行
异步执行首
    变量 请求结果  文本型 = http访问.发送POST请求("665","utf-8")
到主线程
    标签1.标题 = 请求结果
异步执行尾

组件“HTTP.java”源码位置:VcnStudio安装目录\sdk\android\components\primary\class\HTTP.java

请问 我是在子程序里面返回的json 取出ID 再用ID去查资料 然后跟 这个JSON组合起来 必须要等待这个ID查的资料结果猜可以 我要怎么写呢?

回复
官方技术组 2026-03-19

您好,函数调用顺序错误了,必须先创建连接后再调用其它函数。

正确示例:

变量 http访问 = 创建 HTTP()
' 必须先调用该函数
http访问.创建连接("https://pigeon.jinritemai.com/pcbackend/conversa")
http访问.超时 = 60
http访问.请求方式 = "POST"
http访问.添加请求头("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36")
http访问.添加请求头("Accept","application/json, text/plain, */*")
http访问.添加请求头("Content-Type","application/json;charset=UTF-8")
' 发送任何网络请求都是耗时操作,应该放在子线程中执行
异步执行首
    变量 请求结果  文本型 = http访问.发送POST请求("665","utf-8")
到主线程
    标签1.标题 = 请求结果
异步执行尾

组件“HTTP.java”源码位置:VcnStudio安装目录\sdk\android\components\primary\class\HTTP.java

回复
小龙APP 2026-03-19
    http访问.超时 = 60
    http访问.创建连接("https://pigeon.jinritemai.com/pcbackend/conversa")
    http访问.添加请求头("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36")
    http访问.添加请求头("Accept","application/json, text/plain, */*")
    http访问.添加请求头("Content-Type","application/json;charset=UTF-8")
    http访问.请求方式 = "POST"
    http访问.发送POST请求("665","utf-8")

不管怎么写 都说空指针

回复
 作者信息
小龙APP
USBV4独立版
专业开发指导服务

响应时间:5分钟

服务方式:官方1对1服务

工作时间:工作日 9:00 - 18:30

专业团队 · 开发指导 · 极速响应


官网 | 基础视频教程 | 在线文档 下载 VcnStudio IDE

© VcnStudio Inc All Rights Reserved

蜀ICP备17024229号