微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebRequest内容配置丢失

如何解决WebRequest内容配置丢失

给我一​​个困扰我的小问题。
因此,这是我几年前在学习时编写的一个小程序,直到几天前,它都可以完美完成。本质上,只需对SOAP服务进行历史记录并下载文件

httpRequest = WebRequest.Create(My.Settings.RequestAddress)

Using httpResponse As WebResponse = httpRequest.GetResponse
    Using responseStream = New IO.StreamReader(httpResponse.GetResponseStream,StreamEncoding)

        Dim SourceFileName As String = GetSourceFileName(httpResponse.Headers.GetValues("content-disposition"))
        'httpResponse.Headers.GetValues("content-disposition") is returning nothing

        Dim StreamFileName As String = IO.Path.Combine("c:\Temp",SourceFileName)
        Using StreamWrite = New IO.StreamWriter(StreamFileName,False,StreamEncoding)
            do while Not responseStream.EndOfStream
                StreamWrite.WriteLine(responseStream.ReadLine)
            Loop
            StreamWrite.Flush()
        End Using
    End Using
End Using

Private Function GetSourceFileName(ByVal dispositionAttrib As String) As String
    Dim retVal As String = String.Empty
    Dim strArr As String() = Split(dispositionAttrib,"=")
    If strArr.Length > 1 Then
        retVal = strArr(1)
    End If
    Return retVal
End Function

出于某种原因,我无法确定自己的生活,因此看不到“ content-disposition”标头属性
我可以通过邮递员拨打完全相同的电话,并且在那里。也已仔细检查过Header.Keys集合,没有任何迹象。我想念什么?

更新 只需试用一下,即可将WebRequest更改为HttpClient。仍然缺少内容配置

Using client As New HttpClient()
    Dim response = client.GetAsync(My.Settings.RequestAddress).Result
    Dim fileNameAttribute = response.Headers.GetValues("content-disposition")
    Console.WriteLine(fileNameAttribute)
End Using

更新。通过调试器查看时获得的标头值为:

{语法:无缓存内容长度:27缓存控件:私有 内容类型:text / html; charset = utf-8日期:2020年9月2日星期三20:45:37 GMT过期:星期二,2020年9月1日20:45:38 GMT Set-Cookie: ASP.NET_SessionId = 0kqeh5d1a2fni35chmbpibqv;路径= /; HttpOnly; SameSite =松散服务器:Microsoft-IIS / 10.0 X-AspNet版本:4.0.30319 X-Powered-By:ASP.NET

}

我想知道X-Powered-By之后底部的空白行

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。