I’m trying to call a web service, using the WWW class with a WWWForm to fill in the POST data.
It’s an extremely simple web service for this test purpose. All it does is take in two ints, sum them and return the result.
Unfortunately, when I call the service I get this error when it returns:
“necessary data rewind wasn’t possible”
Does anybody have any idea what the cause of this could be?
Here is my code snippet for the request. It’s really just this simple a test:
WWWForm form = new WWWForm();
form.AddField("A", 1);
form.AddField("B", 1);
WWW request;
request = new WWW(url, form);
yield return request;
if (request.error != null)
{
Debug.Log("Error completing request: " + request.error);
}
else
{
Debug.Log(request.text);
}
Any assistance on this issue would be greatly appreciated.
Thanks in advance.
::EDIT:: - Added server side web method.
[WebMethod]
public int AddTest(int A, int B)
{
return A + B;
}
And here is the URL which is stored in the variable url in the request:
How to you store your FORM values on the server? are they appended to some textstream perhaps and could it be that you need to rewind this stream to be able to save?
I grabbed a hold of Wireshark and had a look at the TCP Stream that was being returned from my request. There was an error from the
Web Service that was different to the error Unity’s WWW class had stored.
The ASP web service actually had an error along the lines of:
Request format is unrecognized for URL
unexpectedly ending in
‘/AddTest’.
Basically my ASP Web Service was only willing to handle SOAP requests.
To enable the handling of Web Form POST requests “application/x-www-form-urlencoded”. I just need to add the following to my web.config: