2016-07-21 31 views
0

ich eine Locke Beispiel für eine REST-API-Aufruf haben alsConvert REST curl Befehl Apex anfordern

curl https://api.endpoint.com/api_action.json \ 
-u key:secret \ 
-d 'message=Hello World' \ 
-d id=12345 

Nun folgt Ich versuche, dies mit der Apex Httprequest Klasse zu replizieren, aber ich bin nicht sicher, wie Ich sollte die Optionen in den Anruf weiterleiten.

Was ich bisher habe, ist als

HttpRequest req = new HttpRequest(); 
req.setEndpoint(https://api.endpoint.com/api_action.json); 
req.setMethod('POST'); 
// what goes in these 
req.setHeader(stuff); 
req.setBody(stuff); 

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

Antwort

0

folgt Wenn Sie APEX verwenden, können Sie die Build-in apex_web_service.make_rest_request, dies zu tun:

declare 
    v_clob clob; 
begin 
    v_clob := apex_web_service.make_rest_request( 
         p_url   => <your URL>, 
         p_http_method => 'POST', 
         p_body   => <whatever body>, 
         p_username  => 'username', 
         p_password  => 'password'); 
    htp.p(v_clob); 
end; 
0

Von @sfdcfox answer

Vor diesem Kommentar:

curl -i -X ​​POST --data "first_name = test & last_name = testlast & [email protected]est.com & phone = 1234567 & company = Ac meInc & years_in_business = 3 & Betrag = 4000 & dealer_id = 524b2833f7494317db000001" https://example.com/webform/start/

Der Code, den Sie Bedarf wäre ungefähr:

String payload='first_name=test&last_name=testlast&[email protected]&phone=1234567&company=Ac‌​meInc&years_in_business=3&amount=4000&dealer_id=524b2833f7494317db000001'; 
HttpRequest req = new HttpRequest(); 
req.setMethod('POST'); 
req.setEndpoint('https://example.com/webform/start/'); 
req.setHeader('Content-Type','application/x-www-form-urlencoded'); 
req.setHeader('Content-Length',String.valueOf(payload.length())); 
req.setBody(payload); 
Http binding = new Http(); 
HttpResponse res = binding.send(req);