2017-02-07 14 views
1

Windows 서버에서 요청을 보내 주려고합니다. 즉, 오류 메시지가 표시됩니다. 할 수있는 일은 무엇입니까? . 당신은 인튜이트의 서비스에 액세스 할 수 HTTP Basic 권한을 사용하려고오류 "원격 서버에서 오류를 반환했습니다 : (400) 잘못된 요청"

var oAuthConsumerKey = ""; 
var oAuthConsumerSecret = ""; 
var oAuthUrl ="https://quickbooks.api.intuit.com/v3/company/<companyid>/invoice?minorversion=4"; 

    // Do the Authenticate 
var authHeaderFormat = "Basic {0}"; 

var authHeader = string.Format(authHeaderFormat,Convert.ToBase64String(Encoding.UTF8.GetBytes(Uri.EscapeDataString(oAuthConsumerKey) + ":"+Uri.EscapeDataString((oAuthConsumerSecret))))); 

    string text = System.IO.File.ReadAllText("text file"); 
    // var postBody = "grant_type=client_credentials"; 

    HttpWebRequest authRequest = (HttpWebRequest)WebRequest.Create(oAuthUrl); 
    authRequest.Headers.Add("Authorization", authHeader); 
    authRequest.Method = "POST"; 
    authRequest.ContentType = "application/x-www-form-urlencoded"; 
    authRequest.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)"; 
    authRequest.Accept = "/"; 
    authRequest.UseDefaultCredentials = true; 
    authRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials; 
    authRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 

    using (Stream stream = authRequest.GetRequestStream()) 
    { 
     byte[] content = ASCIIEncoding.ASCII.GetBytes(text); 
     stream.Write(content, 0, content.Length); 
    } 

    authRequest.Headers.Add("Accept-Encoding", "gzip"); 

    WebResponse authResponse = authRequest.GetResponse(); 

답변

1

:

var authHeaderFormat = "Basic {0}"; 

var authHeader = string.Format(authHeaderFormat,Convert.ToBase64String(Encoding.UTF8.GetBytes(Uri.EscapeDataString(oAuthConsumerKey) + ":"+Uri.EscapeDataString((oAuthConsumerSecret))))); 

인튜이트 HTTP Basic 인증을 지원하지 않습니다 여기에 내가 요청을 만들기 위해 노력하고있어 코드입니다. Intuit는 OAuth를 지원합니다.

당신은 설명서를 참조 했습니까? 인튜이트의 웹 사이트에서 :

The QuickBooks API uses OAuth 1.0 to give apps access to data in a user's QuickBooks company.

또한 여기 공식의 OAuth 스펙을 참조 할 수 있습니다

:

내가 이미이 물건을 모두 구현하는 라이브러리를 사용하는 것이 좋습니다 것입니다 너를 위해서.

: 인튜이트는 자신의 웹 사이트에 여러 링크