x


POST request using WWW class. error: necessary data rewind wasn't possible

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:

http://www.somedomain.com/SomeDirectory/WebServices.asmx/AddTest
more ▼

asked Aug 24 '11 at 12:15 PM

KeithK gravatar image

KeithK
862 2 3 13

(comments are locked)
10|3000 characters needed characters left

2 answers: sort voted first

Solved.

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:

<configuration>
   <system.web>
      <webServices>
         <protocols>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
         </protocols>
      </webServices>
   <system.web>
</configuration>

Thanks to BerggreenDK for his answer which made me scrutinize my server side setup, rather than my Unity scripts.

more ▼

answered Aug 25 '11 at 08:35 AM

KeithK gravatar image

KeithK
862 2 3 13

(comments are locked)
10|3000 characters needed characters left

Sounds to me like the server script needs something. Not your Unity script.

Is it PHP? I'm using http://ASP.net/C# and havent seen this type of error so far and I use plenty of WWWForm calls.

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?

more ▼

answered Aug 24 '11 at 12:50 PM

BerggreenDK gravatar image

BerggreenDK
2.4k 54 62 75

Thanks for the reply. It's an http://ASP.NET web service. I usually call them writing my SOAP requests manually, when working in Objective-C or C++, and haven't experienced an issue like this before. I will update my question and place the server side function definition in it.

Aug 24 '11 at 01:00 PM KeithK
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x1942
x524
x65
x36
x1

asked: Aug 24 '11 at 12:15 PM

Seen: 2366 times

Last Updated: Aug 25 '11 at 08:35 AM