Search code examples
powershellpowershell-remoting

400 Bad request for validate package


Getting 400 bad request under following code:

The below function is used to validate the package

function ValidatePackage([String] $MeridiumToken, [String] $PackageName, [String] $DNSURL) {
    try {
        Write-Host "Package Validation Process Started for - $PackageName...."
        $APIVURL = $DNSURL + '/api/v1/core/metadata/import/validatemetadata'
        Write-Host $APIVURL
    

    # Encode Type
    $EncodeType = "iso-8859-1"

    # Dynamic input parameters section
    $FilePath = "$($env:SYSTEM_DEFAULTWORKINGDIRECTORY)/Subtract-a-thon/Automation/" + $PackageName

    # Request Headers
    $VHeaders = @{ 'MeridiumToken' = $MeridiumToken }

    # Reading Package
    # Write-Host "Reading Package..."
    $FileBinary = [System.IO.File]::ReadAllBytes($FilePath)
    $Enc = [System.Text.Encoding]::GetEncoding($EncodeType)
    $FileEnc = $Enc.GetString($FileBinary)

    $CRLF = "`r`n"
    $Boundary = [System.Guid]::NewGuid().ToString()

    # FileName
    $FileName = Split-Path $FilePath -leaf

    # Request Body
    $VBody = (
        "--$Boundary",
        "Content-Disposition: form-data; name=`"file`"; filename=`"$FileName`"",
        "Content-Type: application/octet-stream$CRLF",
        $FileEnc,
        "--$Boundary--"
    ) -join $CRLF

    # Request Content Type
    $VContentType = "multipart/form-data; boundary=`"$Boundary`""

    # REST Call
    # Write-Host "Validating Package..."
    $ValidateResponse = Invoke-RestMethod -Uri $APIVURL -Method Post -Headers $VHeaders -ContentType $VContentType -Body $VBody
    $PkgItems = $ValidateResponse | ConvertTo-Json
    Write-Host "Package Validation Process Finished for -" $PackageName
    if ($PkgItems.StartsWith("{")) {
        $PkgItems = "[$PkgItems]"
    }
    return $PkgItems
    }
    catch {
        Write-Host "An error occurred:"
        Write-Host $_.ScriptStackTrace
        throw $_
    }
}

Solution

  • The issue was with Package count syntax due to which everything was coming blank, after correcting the Count syntax it worked