我正在尝试将存档文件(如果重要,则为 Zip 存档)上传到外部站点的现有 API,虽然我可以让 Web 客户端连接并获取到该站点的令牌,但上传似乎永远无法正常工作,但我不断得到404 错误。问题可能在他们这边,但我似乎是唯一一个在他们的网站上发布过它的人,但我想知道我是否正确使用 UploadFile,或者是否有办法从命令中捕获响应,我想知道是否只是为了改进我的 PowerShell 编码。
我正在运行的是以下内容:
# Variables I want to use
$appArchive = "\\networkpath\Releases\CodeReleasePackage.zip"
$localArchive = "c:\temp\CodeReleasePackage.zip"
[string]$appUrl = "https://site.com/api/v1/apps/(id)/"
[string]$tokenUrl = "https://site.com/token"
[string]$uploadUrl = "https://site.com/api/v1/apps/(id)/?auth_token=$mytoken"
# $appCred = Get-Credential
$username = "email@address"
$password = "password"
# Create the web client
"Creating the client.`n"
$pgup = new-object System.Net.WebClient
$pgup.Credentials = New-Object net.NetworkCredential($username,$password)
"Going to the token page"
$pgToken = $pgup.UploadString($tokenUrl,"")
$mytoken = $pgToken -replace '{|}|"|:|token',''
"Now trying to upload the latest file with my token: $mytoken"
$pgup.UploadFile($uploadUrl,$appArchive)
我得到类似于 {"token","hkjuihgkjhiuhhlkhuhk"} 的令牌并且不知道是否有更好的方法来处理生成的令牌我做了替换以摆脱除令牌字符串之外的所有内容。将其添加到 URL 应该可以工作,但根据 Fiddler,我只会收到 404 错误。
因此,当我运行 $pgup.UploadFile() 时,我希望能够捕获来自站点的响应,但是当我这样做时,似乎什么都没有回来,有没有一种特殊的方法来捕获它?我找不到一个明确的例子,当我做类似 $response = $pgup.UploadFile() 的事情时,我在 $response 中什么都没有。任何对诊断 webclient 错误有用的东西都会很棒,我想了解更多关于这方面的信息,因为它看起来非常有用