1

Does anyone see why this SOAP Request would return a 500 Internal Server Error? If I just pull out the payload test and run it in SOAP UI I get a correct response?

<script language="javascript" runat="server">
Platform.Load('core', '1');
var username = 'xxxxx';
var password = 'xxxxx';
var payload = '';
var endpoint = "https://webservice.s7.exacttarget.com/Service.asmx";
var result;

payload += '<?xml version="1.0" encoding="utf-8"?>';
payload += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">';
payload += '   <soapenv:Header>';
payload += '      <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">';
payload += '         <wsse:UsernameToken wsu:Id="UsernameToken-32259181" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">';
payload += '            <wsse:Username>' + username + '</wsse:Username>';
payload += '            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">' + password + '</wsse:Password>';
payload += '         </wsse:UsernameToken>';
payload += '      </wsse:Security>';
payload += '   </soapenv:Header>';
payload += '   <soapenv:Body>';
payload += '        <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">';
payload += '            <RetrieveRequest>';                     
payload += '                <ObjectType>Automation</ObjectType>';
payload += '                <Properties>ProgramID</Properties>';
payload += '                <Properties>CustomerKey</Properties>';
payload += '                <Properties>Status</Properties>';
payload += '                <Filter xsi:type="SimpleFilterPart">';
payload += '                    <Property>CustomerKey</Property>';
payload += '                    <SimpleOperator>equals</SimpleOperator>';
payload += '                    <Value>17148d1e-827e-6d58-b037-194b9e13a2b1</Value>';
payload += '                </Filter>';
payload += '            </RetrieveRequest>';
payload += '        </RetrieveRequestMsg>';
payload += '   </soapenv:Body>';
payload += '</soapenv:Envelope>';

try {
    result = HTTP.Post(endpoint,"text/xml",payload,null,null);
} catch(e) { 
    result = {StatusCode:500,Response:Stringify(e)};
}

if (result.StatusCode != 200) {
    //Bad response
    Write(Stringify(result));
} else {
    //Good response
    Write(Stringify(result));
}
</script>

Here's the error I get:

{"message":"An error occurred when attempting to evaluate a HTTPPost   function call. See inner exception for details.","description":"ExactTarget.OMM.FunctionExecutionException: An error occurred when attempting to evaluate a HTTPPost function call. See inner exception for details.\r\n Error Code: OMM_FUNC_EXEC_ERROR\r\n - from Jint --> \r\n\r\n --- inner exception 1---\r\n\r\nSystem.Net.WebException: The remote server returned an error: (500) Internal Server Error. - from System\r\n\r\n\r\n\r\n"}

1 Answer 1

2

You need to specify the SOAPAction in the header of your SOAP request.

Change the line:

result = HTTP.Post(endpoint,"text/xml",payload,null,null);

To:

result = HTTP.Post(endpoint,"text/xml",payload,["SOAPAction"],["Retrieve"]);
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .