以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- HttpClient怎么捕获错误? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152844) |
-- 作者:luodang2050 -- 发布时间:2020/7/23 15:38:00 -- HttpClient怎么捕获错误? 如题,如下示例,假设服务端返回异常状态码,客户端怎么解析异常状态码,进行正确的响应了?用了try貌似不起作用 Dim hc As New HttpClient("http://127.0.0.1/gettime.htm")
Dim dt As Date = hc.GetData() MessageBox.Show(dt) |
-- 作者:有点蓝 -- 发布时间:2020/7/23 15:54:00 -- Dim hc As New HttpClient("http://127.0.0.1/gettime.htm") Dim ret As String = hc.GetData(True) If ret = "" Then Output.Show( hc.rCookies("Error")) Else Output.Show( ret) End If |
-- 作者:luodang2050 -- 发布时间:2020/7/23 15:58:00 -- getData(True)是什么意思呢?看教程都是不带参数的,在哪里能看到详细用法? 另外如何获取错误后的状态码及描述,需要客户端根据状态码对应做出调整。
[此贴子已经被作者于2020/7/23 16:00:09编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/7/23 16:07:00 -- getData(True)就是可以在结果返回异常信息,这个帮助没有的 |
-- 作者:luodang2050 -- 发布时间:2020/7/23 16:15:00 -- 当200的时候可返回状态码及描述,401/400的时候返回0空信息,这个是设定上有问题么? 以下400时候返回信息,错误信息给解析到cookies里面了,理论上可以获取到状态码,但错误描述怎么办? Accept: UserAgent: 更新日期:00:00:00 状态码:0 状态描述: 内容类型: 内容长度:0 ------Headers------------- ------cookies------------- Error:远程服务器返回错误: (400) 错误的请求。 [此贴子已经被作者于2020/7/23 16:19:03编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/7/23 16:27:00 -- 直接取cookies里面的内容 |
-- 作者:luodang2050 -- 发布时间:2020/7/23 16:37:00 -- 请问cookie里面只能取到状态码,无法取到自定义状态描述的是么? |
-- 作者:有点蓝 -- 发布时间:2020/7/23 16:43:00 -- 具体怎么做的?做个例子发上来看看 |
-- 作者:luodang2050 -- 发布时间:2020/7/23 16:51:00 -- 代码如下,后端是临时测试的,错误定义为:400, "自定义错误" Dim htc As New HttpClient("http://*.*.*.*:52081") htc.Timeout = 3 Dim ret As object ret = htc.GetData(True) If htc.StatusCode = 200 Then msgbox(ret) End If OutPut.Show("Accept:" & htc.Accept) OutPut.Show("UserAgent:" & htc.UserAgent) OutPut.Show("更新日期:" & htc.LastModified) OutPut.Show("状态码:" & htc.StatusCode) OutPut.Show("状态描述:" & htc.StatusDescription) OutPut.Show("内容类型:" & htc.ResponseContentType) OutPut.Show("内容长度:" & htc.ResponseContentLength) Output.Show("------Headers-------------") For Each key As String In htc.ResponseHeaders.Keys \'显示服务器返回的头部信息 OutPut.Show(Key & ":" & htc.ResponseHeaders(key)) Next Output.Show("------cookies-------------") For Each key As String In htc.rCookies.Keys \'显示服务器返回的头部信息 OutPut.Show(Key & ":" & htc.rCookies(key)) Next 结果返回如下:(不能获取到自定义错误的描述) Accept: UserAgent: 更新日期:00:00:00 状态码:0 状态描述: 内容类型: 内容长度:0 ------Headers------------- ------cookies------------- Error:远程服务器返回错误: (400) 错误的请求。 [此贴子已经被作者于2020/7/23 17:18:00编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/7/23 16:55:00 -- 后端是怎么返回自定义错误的描述的? |