Публикация DotNetOpenAuth — ключи развертывания Bitbucket

Я определенно бьюсь головой о подписанные запросы Oauth, поэтому не уверен, что это мой код, DotNetOpenAuth или Bitbucket.

Я пытаюсь добавить новый ключ развертывания согласно

https://confluence.atlassian.com/display/BITBUCKET/deploy-keys+Resource

Я получаю WebException поговорку

The request was aborted: The connection was closed unexpectedly.

Правильно ли я размещаю сообщения с DotNetOpenAuth? Я не могу найти хорошие образцы?

Мой код выглядит следующим образом:

var payload = new Dictionary<string, string>
                    {
                        {"accountname", username},
                        {"key", Uri.EscapeDataString(key.PublicKey)}
                    };

var dataUrl = @"https://api.bitbucket.org/1.0/repositories/{0}/{1}/deploy-keys";
var url = string.Format(dataUrl, username, projectName);
var endpoint = new MessageReceivingEndpoint(url, HttpDeliveryMethods.PostRequest);
var request = _consumer.PrepareAuthorizedRequest(endpoint, authToken, payload);

var payloadItems = from kvp in payload
            select kvp.Key + "=" + kvp.Value;
var data = Encoding.UTF8.GetBytes(string.Join("&", payloadItems));

using (var stream = request.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}

string responseString;
using (var response = request.GetResponse())
{
    using (var responseStream = new StreamReader(response.GetResponseStream()))
    {
        responseString = responseStream.ReadToEnd();
    }
}

У меня такое чувство, что мне просто нужен хороший образец сообщения формы с использованием DotNetOpenAuth, поэтому извиняюсь, если кажется, что я ленив; мой гугл фу просто не приносит дивидендов.


person Doug    schedule 11.03.2013    source источник


Ответы (1)


Попробуйте создать экземпляр MessageReceiveEndpoint следующим образом:

new MessageReceivingEndpoint(url, HttpDeliveryMethods.AuthorizationHeaderRequest | HttpDeliveryMethods.PostRequest);
person Xeaz    schedule 18.03.2013