Регистрация  |  Вход

Как заранать WebService

Как заранать Рест Веб Сервис с другого СФ Енвайремента?

String userName = 'myUserName';
String pass = 'MyPassword';
String token = 'mySecurityToken';
String endPoint = 'endPoint';

HttpRequest req = new HttpRequest();
req.setMethod('GET');
Blob headerValue = Blob.valueOf(userName + ':' + pass + token);
String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue);
req.setHeader('Authorization', authorizationHeader);
req.setEndpoint(endPoint);

Http http = new Http();
HTTPResponse res = http.send(req);

System.debug('BODY: '+res.getBody());
System.debug('STATUS:'+res.getStatus());
System.debug('STATUS_CODE:'+res.getStatusCode());

Етот код дает: {"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}
Кароче не проходит Аутеризация.

Если req.setHeader('Authorization', authorizationHeader); заменить на req.setHeader('Authorization', 'OAuth ' + SessionId ); при етом захардкодить Сешен АйДи то все пашет. Тоесть проблема не в ВебВервисе

Как заранать Рест Веб Сервис с другого СФ Енвайремента?

[code]
String userName = 'myUserName';
String pass = 'MyPassword';
String token = 'mySecurityToken';
String endPoint = 'endPoint';

HttpRequest req = new HttpRequest();
req.setMethod('GET');
Blob headerValue = Blob.valueOf(userName + ':' + pass + token);
String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue);
req.setHeader('Authorization', authorizationHeader);
req.setEndpoint(endPoint);

Http http = new Http();
HTTPResponse res = http.send(req);

System.debug('BODY: '+res.getBody());
System.debug('STATUS:'+res.getStatus());
System.debug('STATUS_CODE:'+res.getStatusCode());
[/code]

Етот код дает: {"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}
Кароче не проходит Аутеризация.

Если req.setHeader('Authorization', authorizationHeader); заменить на req.setHeader('Authorization', 'OAuth ' + SessionId ); при етом захардкодить Сешен АйДи то все пашет. Тоесть проблема не в ВебВервисе

На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже.

endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.

На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже.

endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.

wilder
На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже.

endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.

endPoint = 'https://cv-test-dev-ed.my.salesforce.com/services/apexrest/v3/accounts'

[quote="wilder"]На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже.

endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.[/quote]

endPoint = 'https://cv-test-dev-ed.my.salesforce.com/services/apexrest/v3/accounts'

remember
wilder
На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже.

endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.

endPoint = 'https://cv-test-dev-ed.my.salesforce.com/services/apexrest/v3/accounts'

Начни отсюда

[quote="remember"][quote="wilder"]На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже.

endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.[/quote]

endPoint = 'https://cv-test-dev-ed.my.salesforce.com/services/apexrest/v3/accounts'[/quote]

[url=https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_understanding_authentication.htm]Начни отсюда[/url]

правильно подсказали, если пытаешься получить токен в rest контесте, то авторизация будет через oAuth, смотри login-password flow как подсказали выше.

правильно подсказали, если пытаешься получить токен в rest контесте, то авторизация будет через oAuth, смотри login-password flow как подсказали выше. 

Та да. Всем спасибо я розобралса уже...

Та да. Всем спасибо я розобралса уже...