Я пытаюсь загрузить файл .xlsx из веб-приложения с помощью API.Тем не менее, строковое содержимое файла всегда шифруется и, похоже, содержит XML-содержимое.Я предполагаю, что это XML, поскольку в первой строке упоминается «[Content_Types] .xml».
В заголовках ответа указывается, что возвращаемый тип контента - «application / octet-stream».Я попытался добавить content-type = "application / vnd.openxmlformats-officedocument.spreadsheetml.sheet" в заголовки моего запроса, но веб-приложение "не распознало операцию".Поэтому я не могу вернуть файлы типа .xlsx ...
Когда я пытаюсь загрузить этот файл и сохранить его как .xlsx, я не могу открыть его, так как он всегда говорит, что файл поврежден.Однако использование Postman для загрузки файла работает без повреждений.Я не уверен, где я ошибаюсь при загрузке и сохранении двоичных данных, закодированных в 64-битной формеПожалуйста помоги!Вот код, который я использую для загрузки и сохранения файла.
If My.Computer.FileSystem.DirectoryExists(DownloadLocation) = False Then
MsgBox("Folder path '" & DownloadLocation & "' does not exist.", MsgBoxStyle.Information)
Return
End If
Dim url As String = 'I am setting the URL here, tested on postman and no issues here
Получение имени файла из заголовка ответа с помощью функции. Нет проблем с путем к файлу и именем.
Dim Filepath As String = DownloadLocation & "\" & filename.Split(".").First & "_" & Format(Now, "yyyymmdd hhmmss") & "." & filename.Split(".").Last
Dim credentials As String = ""
credentials = "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(LoginName + ":" + PW))
Dim Request As HttpWebRequest = DirectCast(HttpWebRequest.Create(url), HttpWebRequest)
With Request
.Headers.Set(HttpRequestHeader.Authorization, credentials)
.Headers.Set("X-Application-Key", My.Settings.APIKey)
.Method = "GET"
.AutomaticDecompression = DecompressionMethods.GZip
End With
Try
Dim response As HttpWebResponse
response = Request.GetResponse
Dim stream As Stream = response.GetResponseStream
Dim reader As New StreamReader(stream)
Dim Ofile As FileStream = New FileStream(Filepath, FileMode.Create)
Dim Owrite As StreamWriter = New StreamWriter(Ofile)
Owrite.Write(reader.ReadToEnd)
reader.Close()
Owrite.Close()
Ofile.Close()
Catch ex As Exception
MsgBox("Download failed..." & vbNewLine & vbNewLine & ex.ToString, MsgBoxStyle.Information)
Return
End Try
Файл сохраняется как файл .xlsx, но когда я пытаюсь открыть файл, Excel говорит, что файл поврежден.Кто-нибудь знает, что здесь происходит?