0

为了解决 DotNetOpenOAuth 的问题,我把剩下的头发都扯掉了。以下是问题的详细信息。

Consumer = new DesktopConsumer(xeroProviderDescription, _tokenManager);
var endPoint = new MessageReceivingEndpoint(apiEndPoint, HttpDeliveryMethods.PostRequest | HttpDeliveryMethods.AuthorizationHeaderRequest);
var request = Consumer.PrepareAuthorizedRequest(endPoint, accessToken);
var content = Encoding.UTF8.GetBytes(payload);
request.ContentType = "application/json";
request.ContentLength = content.Length;

这工作得很好,服务器接受请求并回复。现在,我想切换到使用 xml 与远程服务对话(这是他们比 json 更喜欢的格式)所以我将所有代码更改为发送 XML 数据而不是 json 并将内容类型更改application/x-www-form-urlencoded为根据 Web 服务提供商文档。现在的问题是服务返回 401 未经授权的请求 - 原因:application/x-www-form-urlencoded使用时签名无效

问题:

  1. 生成 oauth 签名时是否Content-Type考虑了这一点(我查看了 DotNetOpenOAuth 源代码但没有运气)?
  2. 有人遇到过这个问题并解决了吗?
4

0 回答 0