You need to sign in to do that
Don't have an account?

Web service callout failed: WebService returned a SOAP Fault: Server was unable to read request.
I have a visual force page that is calling an external web service and whenever I invoke the method on the web service I get this error. I tested the web service outside of salesforce and it works fine. In addition I made a hello world method and it runs find in salesforce. It just whenever I try to run any other method that does more than a simple hello world I get this error. Any help would be greatly appreciated.
System.CalloutException: Web service callout failed: WebService returned a SOAP Fault: Server was unable to read request. ---> There is an error in XML document (1, 814). ---> Input string was not in a correct format. faultcode=soap:Client faultactor=
All Answers
sulox,
To help others identify the issue, paste some code snippet with the post.
I have been doing some research and I have found that this may be a microsoft.net bug where they do not generate some optional xml components that SF is looking for. The site is using .net 2.0.
The link to the web service is http://api.qlocal.com/QBMSAPI/1.0/service.asmx
Here is the code to the controller class:
public class QBMSController {
public PageReference step2() {
return null;
}
public PageReference HelloWorld()
{
qbmsapi.QBMSAPISoap stub = new qbmsapi.QBMSAPISoap();
stub.HelloWorld();
return null;
}
public PageReference Charge()
{
qbmsapi.QBMSAPISoap stub = new qbmsapi.QBMSAPISoap();
Qbmsapi.CredentialInfo Credentials = new Qbmsapi.CredentialInfo();
Qbmsapi.CustomerCreditCardChargeRq request = new Qbmsapi.CustomerCreditCardChargeRq ();
Credentials.UserName = 'qlocaladmin';
Credentials.Password = 'admin';
Credentials.SecurityToken = '12345';
request.TransRequestID = '123';
request.CreditCardNumber = '4111111111111111';
request.ExpirationMonth = 12;
request.ExpirationYear = 2009;
request.IsCardPresent = false;
request.Amount = 2500.23;
request.NameOnCard = 'Matt Meyers';
request.CreditCardAddress = '1234 some test street';
request.CreditCardPostalCode = '78727';
Qbmsapi.CustomerCreditCardChargeRs response = stub.ChargeCreditCard(Credentials,request);
return null;
}
}
here is the code to the visual force page
<apex:page controller="QBMSController">
<apex:form >
<apex:pageBlock title="Charge Credit Card">
<apex:outputLabel value="Credit Card" />:
<apex:inputText value="{!Test}" />
<apex:facet name="footer">
<apex:commandButton action="{!Charge}" value="Charge Card" id="theButton"/>
</apex:facet>
</apex:pageBlock>
</apex:form>
</apex:page>
like I said previously is I change the button action to HelloWorld it works fine in SF. Also if you try to hit the web service from outside of SF all functions work fine.