ASP.NET Webservice klarar inte alla typer av HTTP POST by default

Tags: Android, ASP.NET Webservice, HTTP POST

Jag har hållit på och jobbat med ASP.NET Webservice i ett par år på olika sätt, dock oftast från ajax anrop med jQuery eller ASP.NET inbygda funktioner för det.

När jag nu sitter och försöker få min Android app att kommunicera med en ny ASP.NET Webservice så har jag råkat ut för ett par skumma grejer, jag trodde först det var något fel med hur android koden anropade min webservice men visade sig efter en del forskning att så inte var fallet, en ASP.NET Webservice klarar ju som alla vet som jobbat med den dem flesta vanliga sätt att kommunicera med en webservice.

Jag börjar nästan alltid testningar med javascript och då jquery ajax är ju väldigt simpelt för en webservice vilket jag gjorde även denna gång och såg ju att allt såg ju ut att fungera som det ska med HTTP POST mm.

Men  jag råkade ut för att få detta felmeddelande som svar när jag försökte anropa min webservice från Android:

Request format is unrecognized for URL unexpectedly ending in '/MinFunktion'

Detta är ju ASP.NET Webservice typ standard meddelande när man inte kallar på rätt funktion, istället för 404, då du ändå kommer åt webservicen men inte rätt funktion i den.

Efter försökt lite olika sätt att kalla på webservicen från android hittade jag KSOAP2 som alltså kör SOAP protokollet vilket fungerade fast jag fick det då inte som jag ville till objekt och fick tips om Xstream som då behövde XML sträng för att få att lira med så jag fortsatte testa och till slut tänkte att vafan, det måste finnas en lösning kan ju inte vara android komponenterna som gör fel.

Efter lite sökande på det felmeddelandet även kunde komma up om HTTP POST var avstängt vilket det är som standard enligt Microsoft, så tog och la till detta i web.config:

<configuration>

    <system.web>

    <webServices>

        <protocols>

            <add name="HttpPost"/>

        </protocols>

    </webServices>

    </system.web>

</configuration>

Så nu fungerar allt som det ska även från Android appen.

Källa: http://support.microsoft.com/default.aspx?scid=kb;en-us;819267 

Add a Comment