2013-03-11 2 views
0

Я определенно ударяю головой о подписанные запросы Oauth, поэтому не уверен, что это мой код DotNetOpenAuth или Bitbucket.DotNetOpenAuth Post Issue - Bitbucket Deploy Keys

Я пытаюсь добавить новый ключ Deploy согласно

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 так извинений, если кажется, что я ленив; мой google fu просто не выплачивает дивиденды.

ответ

1

Попробуйте инстанцировании ваш MessageReceivingEndpoint следующим:

new MessageReceivingEndpoint(url, HttpDeliveryMethods.AuthorizationHeaderRequest | HttpDeliveryMethods.PostRequest);