我正在尝试调用 Lists.asmx SharePoint Web 服务的 AddAttachment,如果我通过 HTTP 调用 Web 服务,则以下代码可以正常工作。
Dim img(MyFile.PostedFile.ContentLength - 1) As Byte
MyFile.PostedFile.InputStream.Read(img, 0, img.Length)
'Dim fStream As FileStream = File.OpenRead(FullFileName)
Dim fileName As String = MyFile.PostedFile.FileName.Substring(3)
Dim listService As New wsList.Lists()
Dim credentials As New System.Net.NetworkCredential(UserName, Password, Domain)
If Not SiteUrl.EndsWith("/") Then
SiteUrl += "/"
End If
SiteUrl += "_vti_bin/Lists.asmx"
'SiteUrl = SiteUrl.ToLower.Replace("http:", "https:")
listService.Url = SiteUrl
listService.Credentials = credentials
Dim addAttach As String = listService.AddAttachment(ListName, ItemId, fileName, img)
ReturnValue = True
但是,如果我取消注释掉这一行
'SiteUrl = SiteUrl.ToLower.Replace("http:", "https:")
我将收到以下错误: 请求失败,HTTP 状态 401:未经授权
现在,如果我将上面的行注释掉,然后也注释掉这一行
listService.Credentials = credentials
我将收到相同的 401 错误(预期),因此似乎通过 HTTP 但不是 HTTPS 正确接受了凭据。有人可以帮我解释一下,并对如何解决这个问题有任何想法吗?
提前致谢!