Foxtable(狐表)用户栏目专家坐堂 → [求助]HttpClient的POST请求


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

主题:[求助]HttpClient的POST请求

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3830 威望:0 精华:0 注册:2016/8/21 3:43:00
[求助]HttpClient的POST请求  发帖心情 Post By:2022/1/18 10:58:00 [只看该作者]

因需求需要对部分网站的信息进行实时采集,之前用Webbrower可以实现但比较麻烦,GET形式的请求比较好处理,类似如下的POST请求一直无法研究成功,请求协助
网站源:http://www.changanjyzx.com/
采集链接(post请求链接):http://www.changanjyzx.com/notice/pageNoticeByType
对应的请求代码及header头截图如下,此链接无需登录和COOKIE

Dim url As String = "http://www.changanjyzx.com/notice/pageNoticeByType"
Dim hc As New HttpClient(url)
hc.ContentType = "application/json;charset=UTF-8"
hc.Headers.Add("Accept","application/json, text/javascript, */*; q=0.01")
hc.Headers.Add("Accept-Encoding","gzip, deflate")
hc.Headers.Add("Accept-Language","zh-CN,zh;q=0.9")
hc.Headers.Add("Connection","keep-alive")
hc.Headers.Add("Content-Length","42")
'hc.Headers.Add("Cookie","xxx")
hc.Headers.Add("Host","www.changanjyzx.com")
hc.Headers.Add("Origin","http://www.changanjyzx.com")
hc.Headers.Add("Referer","http://www.changanjyzx.com/")
hc.Headers.Add("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36")
hc.Headers.Add("X-Requested-With","XMLHttpRequest")

Dim jo As New JObject
jo("type") = 9
jo("examType") = 0
jo("pageSize") = 10
jo("pageNumber") = 2

'Output.Show(jo.tostring)
hc.Content = jo.tostring
Dim ret  As String = hc.GetData
Output.Show(ret)
'

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

[此贴子已经被作者于2022/1/18 11:04:38编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/18 11:11:00 [只看该作者]

使用表单方式提交数据:http://www.foxtable.com/mobilehelp/topics/0159.htm
……
hc.Headers.Add("X-Requested-With","XMLHttpRequest")

hc.ContentType = "application/x-www-form-urlencoded"
hc.FormData.Add("type",9)
hc.FormData.Add("examType",0)
……
Dim ret  As String = hc.GetData
Output.Show(ret)

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3830 威望:0 精华:0 注册:2016/8/21 3:43:00
  发帖心情 Post By:2022/1/18 11:29:00 [只看该作者]

果然成功了,谢谢蓝版。追问:为什么这里必须要用表单方式呢,是怎么判断的?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/18 11:32:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3830 威望:0 精华:0 注册:2016/8/21 3:43:00
  发帖心情 Post By:2022/1/18 11:50:00 [只看该作者]

谢谢蓝版。下面是另外一个网站,也是表单形式,但是参数有些不一样,对应json我已经解析准备好,但是参数名比如之前的又type,examType等,这个应该怎么来做表单参数提交呢。

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220118114935.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/18 11:52:00 [只看该作者]

信息太少无法判断。看接口说明文档

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3830 威望:0 精华:0 注册:2016/8/21 3:43:00
  发帖心情 Post By:2022/1/18 11:59:00 [只看该作者]

网站源:https://www.cqggzy.com/jyxx/transaction_detail.html
采集链接(post请求链接):https://www.cqggzy.com/interface/rest/inteligentSearch/getFullTextData
请教:
1、这个链接对应的Form Data 是由josn对应组成的,如果是表单提交不是josn大概是什么思路来分拆参数?
2、如果涉及到带cookie,是用hc.Headers.Add("Cookie","xxx")还是hc.sCookies("xxx")?


此主题相关图片如下:微信图片_20220118115318.png
按此在新窗口浏览图片

此主题相关图片如下:微信图片_20220118114935.png
按此在新窗口浏览图片

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/18 13:34:00 [只看该作者]

1、有没有接口说明文档?
2、hc.sCookies

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3830 威望:0 精华:0 注册:2016/8/21 3:43:00
  发帖心情 Post By:2022/1/18 13:59:00 [只看该作者]

没有接口文档
以下是代码,未成功,sCookies的方式为测试(应该不需要)
Dim url As String = "https://www.XXXXX.com/interface/rest/inteligentSearch/getFullTextData"
Dim hc As New HttpClient(url)
hc.ContentType = "application/x-www-form-urlencoded"
hc.Headers.Add("Accept","application/json, text/javascript, */*; q=0.01")

hc.sCookies.Add("JSESSIONID","F13AA7A30C7633EC1A977149A3F2939D")
hc.sCookies.Add("__jsluid_s","182579a38d31f324ab6317c280583d06")
hc.sCookies.Add("cookie_www","36802747")
hc.sCookies.Add("Hm_lvt_3b83938a8721dadef0b185225769572a","1642406313,1642411971,1642470401")
hc.sCookies.Add("Hm_lpvt_3b83938a8721dadef0b185225769572a","1642485954")

hc.Headers.Add("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36")
hc.Headers.Add("X-Requested-With","XMLHttpRequest")
Dim jo As New JObject
jo("token") = ""
jo("pn") = 20
jo("rn") = 20
jo("sdt") = ""
jo("edt") = ""
jo("wd") = " "
jo("inc_wd") = ""
jo("exc_wd") = ""
jo("fields") = "title;projectno;"
jo("cnum") = "001"
Dim jo1 As New JObject
jo1("istop")= "0"
jo1("ordernum")= "0"
jo1("webdate")= "0"
jo1("rowid")= "0"
jo("sort") = jo1
jo("ssort") = "title"
jo("cl") = 200
jo("terminal") = ""
Dim jo2 As New JObject
jo2("fieldName") = "categorynum" 
jo2("equal") = "004" 
jo2("notEqual") = Nothing
jo2("equalList") = Nothing
Dim ja1 As New JArray
ja1.Add("014001018")
ja1.Add("004002005")
ja1.Add("014001015")
ja1.Add("014005014")
ja1.Add("014008011")
jo2("notEqualList") = ja1
jo2("isLike") = True
jo2("likeType") = 2
Dim ja2 As New JArray
ja2.Add(New JObject)
ja2(0) = jo2
jo("condition") = ja2
Dim ja3 As New JArray
ja3.Add(New JObject)
ja3(0)("fieldName") = "webdate"
ja3(0)("startTime") = "2021-10-19 00:00:00"
ja3(0)("endTime") = "2022-01-17 23:59:59"
jo("time") = ja3
jo("highlights") = "title"
jo("statistics") = Nothing
Dim ja4 As New JArray
jo("unionCondition") = ja4
jo("accuracy") = ""
jo("noParticiple") = "0"
jo("searchRange") = Nothing
jo("isBusiness") = "1"
'Output.Show(jo.tostring)
hc.Content = jo.tostring
Dim ret  As String = hc.GetData
Output.Show(ret)
'

[此贴子已经被作者于2022/1/18 14:21:36编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/18 14:19:00 [只看该作者]

这我就不懂了,自己试吧

 回到顶部