Foxtable(狐表)用户栏目专家坐堂 → REST API 怎么获取post数据


  共有3556人关注过本帖树形打印复制链接

主题:REST API 怎么获取post数据

帅哥哟,离线,有人找我吗?
zhutangxin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
REST API 怎么获取post数据  发帖心情 Post By:2020/6/19 2:32:00 [显示全部帖子]

老师你好,
我们一个供应商给我们提供亮灯取货的硬件,供应商在硬件PLC里写了一些程序,当在硬件上操作的时候,会主动向服务器用POST的方法提交的json数据,请问怎么获取这个json数据?
供应商的说明文档如下。问题在第2点http://server-ip/confirm-task (server-ip是Foxtable中的HttpServer的IP地址,端口只能用80)中怎么获得POST的json. 供应商说这是REST Api。



<!--[if !supportLists]-->1.       <!--[endif]-->获取作业接口(拣货单、上架单、盘点单)

Endpoint: http://server-ip/get-job?jobNo=PK0001

Methods: GET

Content-type: application/json

Return Data:

{

                id: 23456,

                jobNo: ‘PK0001’,   //纸质单上的条码:PK: 拣货单; PT: 上架单; CT: 盘点单

                tasks: [

                                {

                                                id: 12345,

                                                location: ’12-2-1’,

                                                reqQty: 15

},

                                {

                                                id: 12346,

                                                location: ’13-2-2’,

                                                reqQty: 123

}

]

}

 

<!--[if !supportLists]-->2.       <!--[endif]-->任务完成接口(在一个货位上的拣货、上架或盘点操作为一个任务)

Endpoint: http://server-ip/confirm-task

Methods: POST

Content-type: application/json

Post Data:

 

{

                id: 12345,

                type: ‘PK’,                             // PK: 拣货单; PT: 上架单; CT: 盘点单

                location: ‘12-2-1’,

                reqQty: 15,                           //请求数量

                cfmQty: 14                           //确认数量

}

 

Return Data:

{

                result: 1, //1 for success, and 0 for failed

                message: ‘error reason’

}



 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 2:36:00 [显示全部帖子]

REST Api参考:

https://blog.csdn.net/xpj8888/article/details/89487354
REST服务器(四)REST服务器POST请求:EndPoint、Method、ContentType、PostData/Json格式数据

测试工具:

http://cdn.ouapi.com//postjson_windows.zip

 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 2:55:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2020-06-19_02-54-34.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 2:58:00 [显示全部帖子]

代码:

Select Case e.Path
    Case "get-job"
        Dim job As String
        job =  e.GetValues("jobNo")
        ' 纸质单上的条码:PK: 拣货单; PT: 上架单; CT: 盘点单
        Dim jobDetail As String = Functions.Execute("GetJob", job)
        e.WriteString(jobDetail)
        
    Case "confirm-task"
        'Dim url As String = "http://" & _ip & "/confirm-task"
        'Dim rqst As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url)
        'Dim rsps As System.Net.HttpWebResponse = rqst.GetResponse
        'Dim stm As System.IO.Stream = rsps.GetResponseStream()
        'Dim reader As New System.IO.StreamReader(stm)
        'Dim str As String = reader.ReadToEnd
        'rsps.Close
        'stm.Close
        'reader.close
        'MessageBox.Show(str)
'这个地方不知道怎么获得POST DATA

        e.WriteString("{""result"":1}")          
        
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 9:37:00 [显示全部帖子]

试过了,没有数据,二次Msgbox的信息如下


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2020-06-19_09-34-57.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2020-06-19_09-34-40.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 9:43:00 [显示全部帖子]

帮助里提到了Values的二个子集,但没有提到Values的全集获取方法。帮助里的PostValues应该是表单提交数据,每个数据都有key,但硬件返回的数据是以json提交的,没有key, 所以才不知道怎么获得它。

HttpReqquest事件还有两个字典属性,他们是Values的子集:


GetValues: 字典,仅包括通过GET方式提交的数据。
PostValues:字典,仅包括通过POST方式提交的数据。


 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 9:43:00 [显示全部帖子]

接口说明如下:

任务完成接口(在一个货位上的拣货、上架或盘点操作为一个任务)

Endpoint: http://server-ip/confirm-task

Methods: POST

Content-type: application/json

Post Data:

 

{

                id: 12345,

                type: ‘PK’,                             // PK: 拣货单; PT: 上架单; CT: 盘点单

                location: ‘12-2-1’,

                reqQty: 15,                           //请求数量

                cfmQty: 14                           //确认数量

}

 

Return Data:

{

                result: 1, //1 for success, and 0 for failed

                message: ‘error reason’

}



 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 10:02:00 [显示全部帖子]


就是9楼的那个,word和pdf都发不了?

 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 10:03:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2020-06-19_10-02-46.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2020-06-19_10-02-28.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:479 积分:4110 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2020/6/19 10:04:00 [显示全部帖子]

用截图来发吧


 回到顶部
总数 14 1 2 下一页