Search code examples
c#.netweb-servicesparametersasmx

forcing to ignore some url parameters


I am making an iPhone app where I am using .NET webservice.

Let's say below is the URL I have.

http://www.myweb.com/wser.asmx/listOfStudents?class=12

Here I was getting list of students with below fields in it.

Name
Roll Number
Class

Now client asked to make arabic version. So we update the query to below.

http://www.myweb.com/wser.asmx/listOfStudents?class=12&appLang=ar
                                                      ^^^^^^^^^^^^

For testing we update webservice on another server & checked and all is working fine.

Now while uploading app on App store, I noticed if I update actual webservice current app won't work as appLang variable is missing in current app that is there on app store.

If I don't update webservice & apple go in testing, the app will crash as it will throw error of missing parameter appLang.

So what I was thinking is,

I will upload new webservice, BUT appLang will be arabic BY-DEFAULT.

Like if I execute url http://www.myweb.com/wser.asmx/listOfStudents?class=12 with updated webservice (appLang added in webservice but not in url), it will not throw error of parameter missing appLang?

Is there any way to make default parameter?


Solution

  • while using GET isn't that pretty in this case (POST could be more suitable), you could do this :

    //by specifying a messageName, you can do overloading with webmethods
    [WebMethod (MessageName = "listOfStudentsDefault")]  
    [ScriptMethod(UseHttpGet=true)]
    public string listOfStudents(int class, string appLang)
    {
        // code here...
    }
    
    [WebMethod (MessageName = "listOfStudents")]  
    [ScriptMethod(UseHttpGet=true)]
    public string listOfStudents(int class)
    {
        return listOfStudents(class, "ar");
    }