获取内容信息

我们可以获取内容信息,例如最近一次修改时间、内容类型、内容长度、状态码、状态字符串和头部信息等。

例如:

Dim htc As new HttpClient("http://www.foxtable.com/bbs/images/foxtable.gif")
htc
.GetFile("c:\aaa\test.gif")
OutPut
.Show("更新日期:" & htc.LastModified)
OutPut
.Show("状态码:" & htc.StatusCode)
OutPut
.Show("状态描述:" & htc.StatusDescription)
OutPut
.Show("内容类型:" & htc.ResponseContentType)
OutPut
.Show("内容长度:" & htc.ResponseContentLength)
For
Each key As String  In htc.ResponseHeaders.Keys  '显示服务器返回的头部信息
    OutPut.Show(Key & ":" & htc.ResponseHeaders(key))

Next

第三方开发接口示例

下面是进行企业微信开发的时候,一段下载临时素材的代码:

Dim ul As String = "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token={0}&media_id={1}"
Dim
mediaID As String = "1GDEyyL7RIo868rKmIf3ThZoCMkd69VvH3wPBMpQj9w3uq7dmdxlbNjh669KPLyhF7EEOpBszls7BSmgMFgn07A"  '要获取素材的ID
Dim
hc As new HttpClient(CExp(ul,Functions.Execute("GetQYAccessToken"),mediaID))
Dim
fl As String  = "c:\data\abc.jpg" '要保存为的本地文件
If
hc.GetFile(fl) Then
    If hc.ResponseContentType.StartsWith("application/json") Then
        MessageBox.Show(Filesys.ReadAllText(fl))
        FileSys.DeleteFile(fl)
'
删除文件
    Else
        MessageBox.Show(
"
图片素材下载成功!")
    End
If

Else

    MessageBox.Show(
"
图片素材下载失败!")
End
If

下载临时素材,会有两种可能:

1、获取成功,返回文件。
2、获取失败,返回JSON格式的错误信息。

但是HttpClient的GetFile会直接将返回内容保存为文件,不管是返回的内容是素材文件还是错误信息。
我们可以判断HttpClient的ResponseContentType属性,如果其值为"application/json",说明返回的不是素材文件,而是错误提示信息,然后从此文件读取错误信息显示给用户,最后删除文件。

接下来你会看到,我们还有更好的办法应付此类场景。
 


本页地址:http://www.foxtable.com/mobilehelp/topics/3276.htm