gpt4 book ai didi

c# - 在 Jira 5.1.2 中使用 DotNetOpenAuth

转载 作者:行者123 更新时间:2023-11-30 16:19:26 26 4
gpt4 key购买 nike

我在使用 DotNetOpenAuth 与 Jira 通信时遇到了问题。

var payload =   
new {
fields = new
{
project = new { id = 10000 },
summary = summary,
description = description,
issuetype = new { id = (int)issueTypeId }
}
};

webRequest = OAuthConsumer.PrepareAuthorizedRequest(
new MessageReceivingEndpoint(url, HttpDeliveryMethods.PostRequest),
accessToken
);

byte[] payloadContent = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(payload));
webRequest.ContentLength = payloadContent.Length;
using (var stream = webRequest.GetRequestStream())
{
stream.Write(payloadContent, 0, payloadContent.Length);
}

但是,webRequest.GetRequestStream() 只是抛出一个异常开始写入后无法设置此属性。

我正在尝试使用 http://docs.atlassian.com/jira/REST/latest/#id120664 创建一个新问题.如果我使用基本身份验证而不是 OAuth 并且我使用 GET 的所有其他 OAuth 调用都可以正常工作,则代码可以正常工作。

有人对将 DotNetOpenAuth 与 Jira 结合使用有任何建议吗?

谢谢!

最佳答案

终于找到问题了。需要使用以下代码:

var payload =   
new {
fields = new
{
project = new { id = 10000 },
summary = summary,
description = description,
issuetype = new { id = (int)issueTypeId }
}
};

webRequest = OAuthConsumer.PrepareAuthorizedRequest(
new MessageReceivingEndpoint(url, HttpDeliveryMethods.AuthorizationHeaderRequest | HttpDeliveryMethods.PostRequest),
accessToken
);

webRequest.ContentType = "application/json";

byte[] payloadContent = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(payload));
webRequest.ContentLength = payloadContent.Length;
using (var stream = webRequest.GetRequestStream())
{
stream.Write(payloadContent, 0, payloadContent.Length);
}

基本上,我需要在调用 PrepareAuthorizedRequest 时添加 HttpDeliveryMethods.AuthorizationHeaderRequest,然后我需要设置 ContentType 属性,然后再向流。

关于c# - 在 Jira 5.1.2 中使用 DotNetOpenAuth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15344448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com