1

我们这里有一个我想与 powershell 一起使用的 domino/lotus webservices。

问题是在webservices lotus admin 面前问一个http autentification。

我怎样才能使用这个网络服务??

在这里,我首先尝试废弃第一页并获取 cookie。

$url = "http://xxxxxxx/names.nsf?Login"

$CookieContainer = New-Object System.Net.CookieContainer

$postData = "Username=user***&Password=pss***"

$buffer = [text.encoding]::ascii.getbytes($postData)

[net.httpWebRequest] $req = [net.webRequest]::create($url)
$req.method = "POST"
$req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
$req.Headers.Add("Accept-Language: en-US")
$req.Headers.Add("Accept-Encoding: gzip,deflate")
$req.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7")
$req.AllowAutoRedirect = $false
$req.ContentType = "application/x-www-form-urlencoded"
$req.ContentLength = $buffer.length
$req.TimeOut = 50000
$req.KeepAlive = $true
$req.Headers.Add("Keep-Alive: 300");
$req.CookieContainer = $CookieContainer
$reqst = $req.getRequestStream()
$reqst.write($buffer, 0, $buffer.length)
$reqst.flush()
$reqst.close()
[net.httpWebResponse] $res = $req.getResponse()
$resst = $res.getResponseStream()
$sr = new-object IO.StreamReader($resst)
$result = $sr.ReadToEnd()

这似乎可行,但现在不知道如何将 cookie 与 webservicesproxy 一起使用???或者也许是更好的方法?

ps:我成功地将它与 c# + visualstudio 一起使用(只是类引用是自动构建的,我不理解其中的一半,但它允许我在生成的 webservice 上使用 .CookieContenaire )

4

1 回答 1

0

您是否尝试过使用内置的 webservice cmdlet?

    $webservice = New-WebServiceProxy -Uri "http://xxx/names.nsf?Login" -Credential (Get-Credential)
于 2013-02-11T19:41:54.510 回答