2013-03-25 91 views
0

我必須在Salesforce中向Shopify發出http請求。我使用以下url格式作爲setEndpoint方法的端點url。無效的API密鑰或訪問令牌(無法識別的登錄名或密碼錯誤)

HttpRequest req= new HttpRequest(); 
req.setEndpoint('https://apikey:[email protected]/admin/resource.xml'); 
req.setMethod('GET'); 

我獲得以下日誌:

CALLOUT_RESPONSE|[18]|System.HttpResponse[Status=Unauthorized, StatusCode=401] 

而且我得到的返回值從身體的HttpResponse:

<?xml version="1.0" encoding="UTF-8"?> <hash> <errors>[API] Invalid API key or access token (unrecognized login or wrong password)</errors> </hash> 

此外,我曾試圖以下的結構,但我一直沒成功的。

Blob headerValue = Blob.valueOf(apikey+ ':' + password); 
String authorizationHeader = 'BASIC ' + 
EncodingUtil.base64Encode(headerValue); 
req.setHeader('Authorization', authorizationHeader); 

我應該做的HttpResponse狀態代碼是200

+0

您是否可以在瀏覽器中使用https:// apikey:[email protected]/admin/resource.xml?如果沒有,你可能需要(重新)生成一個新的apikey:密碼。 – hjblok 2013-03-26 07:30:52

+0

是的,我嘗試過。它工作正常。 – mustafatop 2013-03-26 08:21:38

回答

0

「基本」字是區分大小寫的。我用它改了「BASIC」。問題已解決。

Blob headerValue = Blob.valueOf('apikey:password'); 
    String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue); 
    req.setHeader('Authorization', authorizationHeader); 
相關問題