2014-04-28 2 views
1

Eventbrite API에서 주문을 가져 오려고합니다. 유효한 OAuth 토큰과 주문 번호가 있습니다. 올바른 JSON을 성공적으로 반환하는 우편 배달부를 사용하여이를 확인했습니다. 나는 다음과 같은 C# 코드를 사용하여 전화를 걸 때.Net에서 Eventbrite API를 호출하면 401이 발생합니다.

그러나, 나는 401 권한을 얻을 : 나는 또한 시도

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("{authToken}"); 

:

var client = new HttpClient(); 
var req = new HttpRequestMessage(HttpMethod.Get, "https://www.eventbriteapi.com/v3/orders/{orderNo}"); 
req.Headers.Add("Authorization", "Bearer {authToken}"); 
var response = await client.SendAsync(req); 

나는 함께 헤더를 교체 시도했다 :

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.eventbriteapi.com/v3/orders/{orderNo}"); 
request.Headers.Add("Authorization", "Bearer {authToken}"); 
request.Accept = "application/json"; 
using(WebResponse response = request.GetResponse()) 
      { 
    using(Stream dataStream = response.GetResponseStream()) 
       { 
     using(StreamReader reader = new StreamReader(dataStream)) 
        { 
         string responseFromServer = reader.ReadToEnd(); 
     } 

    } 
} 

이 모두가 401 응답을 얻습니다. authtoken과 eventid가 정확하다는 것을 알고 있으므로 내 코드에 문제가있을 것입니다.

내가 authroisation 토큰에 문제가 있습니까?

답변

2

EventBrite API에서 token = {authToken} 옵션을 사용해 보셨습니까?

적어도 헤더가 전송되는 방식에 문제가 있는지 확인해야합니다.

http://developer.eventbrite.com/docs/auth/

+0

재미있는 점은 authToken을 쿼리 문자열에 넣는 것입니다. 당신이 말했듯이 이것은 헤더를 만든 방식에 문제가 있음을 확인합니다. 헤더 메서드는 우편 배달부에서 작동하므로 올바르게 작성하지 않아야합니다. –

+0

피들러를 실행하고 요청에서 실제로 보내지는 것을 확인하고 싶습니다. 나는 Expect 헤더에 의해 잡혔다. .net이 커버 아래에 추가되어 어쩌면 그와 비슷한 것이있을 것이다. –

2

당신은에서 후속 리디렉션의 원인이 된 URL에 후행 '/', 'eventbriteapi.com/v3/orders/{orderNo} "을"eventbriteapi.com/v3/orders/을 {생략 orderNo}/". 권한 부여 헤더가 리디렉션에서 삭제되었습니다.