Не удается отправить гем ruby ​​через API с кодом ошибки HTTP 422 - PullRequest
0 голосов
/ 19 сентября 2010

Я пытаюсь загрузить свой проект FAKE (http://github.com/forki/FAKE) в RubyGems из F #:

let mutable rubyGems = "http://rubygems.org/api/v1/gems"

let PushGem gemFileName authCode = 
    let client = new System.Net.WebClient()
    client.Headers.Add(Net.HttpRequestHeader.Authorization,authCode)

    logfn "Uploading gem %s to %s." gemFileName rubyGems
    client.UploadFile(rubyGems,gemFileName)
      |> System.Text.Encoding.ASCII.GetString
      |> printfn "%s"

Возвращает: Загрузка gem. \ Gems \ fake-1.42.9.0.gem в http://rubygems.org/api/v1/gems. Удаленный сервер возвратил ошибку: (422) Unprocessable Entity.

Драгоценный камень вроде бы в порядке, так как я могу его установить. Документацию по API можно найти по адресу https://rubygems.org/pages/api_docs.

Есть идеи?

С уважением, Штеффен

Обновление

curl --data-binary fake-1.42.11.0.gem -H 'Авторизация: .....' http://rubygems.org/api/v1/gems

дает:

RubyGems.org не может обработать этот драгоценный камень. Пожалуйста, попробуйте восстановить его и установить локально, чтобы убедиться, что он действителен.

но gem push fake-1.42.11.0.gem вроде бы работает.

С уважением, Штеффен

1 Ответ

1 голос
/ 19 сентября 2010

, если отправка файла с curl (как указано в примере API) работает правильно? Если да - вы должны сравнить запросы от curl и WebClient.UploadFile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...