2014-05-13 2 views
0

내가 UrlFetchApp을Google 애플리케이션 스크립트와 UrlFetchApp을

를 사용하여 웹 사이트에서 JSON을 검색하려고으로 JSON을 가져 오는 Google 애플리케이션 스크립트 (GAS)는 URL 인코딩 로그온 자격 증명을 지원하지 않는 지난 몇 일 동안 배운

이는 대상 웹 사이트에 액세스하는 데 선호되는 방법입니다.

웹 사이트는 다음과 같은 기본 인증 매개 변수를 제공하기 위해 헤더를 사용하여 지원하지 않습니다

Logger.log('Basic Auth in header'); 
    var url2 = 'http://website.com' 
var response = UrlFetchApp.fetch(url2, { 
    headers: { 
    'Authorization': 'Basic ' + Utilities.base64Encode('logon parms') 
    }, 
    muteHttpExceptions: true 
}); 
Logger.log('Response Code: ' + response.getResponseCode()); 
} 

을 나는 위의와 '찾을 수 없음'오류,하지만 난을 변경하면 이후는 분명히 성공적으로 인증하는 암호를 입력하면 'Unauthorized'오류가 반환됩니다.

내 질문 - GAS를 사용하여 JSON을 가져 오는 다른 방법이 있습니까? 아니면 운이 좋지 않습니까?

+0

귀하는 궁금한 점은 JSON과 관련이 없습니다. 액세스하려는 사이트의 특정 문제입니다. 보다 자세한 테스트 케이스 (또는 액세스하려는 사이트에 대한 링크)를 제공하지 않으면 귀하를 도울 수 없습니다. –

+0

제 질문은 JSON보다 GAS에 관한 것입니다. URL 인코딩 된 로그온 자격 증명을 지원하지 않는 GAS에 대한 해결 방법이 있는지 확인하려고합니다. – user3353923

+0

작동해야하지만 아무 것도 시도하지 않으면 시도하기가 어렵습니다. –

답변

1

이것이 왜이 문제를 해결할 수 있는지 잘 모르겠지만 다음과 같이 코드를 작성하면 문제가 해결됩니다 (제 경우에는 효과가있었습니다). response 초기화 외부에 auth 문자열을 만드십시오.

Logger.log('Basic Auth in header'); 
var url2 = 'http://website.com'; 
var auth = 'Basic ' + Utilities.base64Encode('logon parms'); 
var response = UrlFetchApp.fetch(url2, { 
    headers: { 
    'Authorization': auth 
    }, 
    muteHttpExceptions: true 
}); 
Logger.log('Response Code: ' + response.getResponseCode()); 
} 
관련 문제