将XML请求体添加到Oauth IConsumerRequest

大家正在研究一个涉及从Intuit Anywhere获取数据的项目。当用Oauth签名的URL作为请求发送时,该过程工作正常。可以帮助我如何将xml请求添加到IConsumerRequest的主体。

OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = "consumerkey", SignatureMethod = SignatureMethod.HmacSha1, ConsumerSecret = "consumersecret" }; OAuthSession oSession = new OAuthSession(consumerContext, "https://oauth.intuit.com/oauth/v1/get_request_token", "https://workplace.intuit.com/Connect/Begin", "https://oauth.intuit.com/oauth/v1/get_access_token"); oSession.ConsumerContext.UseHeaderForOAuthParameters = true; oSession.AccessToken = new TokenBase { Token = Session["accessToken"].ToString(), ConsumerKey = "consumerkey", TokenSecret = Session["accessTokenSecret"].ToString() }; IConsumerRequest conReq = oSession.Request(); string body = @"   143 130  "; conReq = conReq.Get(); conReq = conReq.ForUrl("https://services.intuit.com/sb/account/v2/536779769"); conReq.RequestBody=body; try { conReq = conReq.SignWithToken(); } catch (Exception ex) { throw ex; } string header = conReq.Context.GenerateOAuthParametersForHeader(); string serviceResponse = conReq.ReadBody(); 

我收到错误无法使用此动词类型发送内容正文。有人指出错误是什么或是否可以对Web请求执行相同操作? 请帮忙

这是有效的。下面是我从intuit论坛获得的示例代码 – https://idnforums.intuit.com/messageview.aspx?catid=86&threadid=18870&enterthread=y

  //using DevDefined.OAuth.Consumer; //using DevDefined.OAuth.Framework; protected void GetBalanceSheet() { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(), SignatureMethod = SignatureMethod.HmacSha1, ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"].ToString() }; OAuthSession oSession = new OAuthSession(consumerContext, "https://oauth.intuit.com/oauth/v1/get_request_token", "https://workplace.intuit.com/Connect/Begin", "https://oauth.intuit.com/oauth/v1/get_access_token"); oSession.ConsumerContext.UseHeaderForOAuthParameters = true; oSession.AccessToken = new TokenBase { Token = Session["accessToken"].ToString(), ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(), TokenSecret = Session["accessTokenSecret"].ToString() }; var body = "ipp2012-06-01"; IConsumerRequest conReq = oSession.Request(); conReq = conReq.Post().WithRawContentType("text/xml").WithRawContent(System.Text.Encoding.ASCII.GetBytes(body)); ; conReq = conReq.ForUrl("https://services.intuit.com/sb/advancedreport/v2/508053445"); try { conReq = conReq.SignWithToken(); } catch (Exception ex) { throw ex; } string serviceResponse = conReq.ReadBody(); } 

Karthi,听起来你正在尝试执行GET请求并向正文添加内容,这会导致错误。

请参阅有关为您的请求构建标题的文档: https : //ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0500_QuickBooks_Windows/0100_Calling_Data_Services/0010_Request_Header

问候,震惊