user3543997
user3543997

Reputation: 121

how to pass arguments to GET method in RESTfull webservice

I have to pass UserName and password as arguments into GET method for validation.after processing I need to get response.so how can I pass value into RESTful webservice GET method?

Upvotes: 7

Views: 30689

Answers (4)

Mukesh Dabhi
Mukesh Dabhi

Reputation: 196

Hi you can pass arguments to GET method in RESTfull like :

 http://yoururl/<arg1>/<arg2>

eg.

 http://yoururl/abc/123

Upvotes: 0

ArunkumarB
ArunkumarB

Reputation: 23

I think, you should use POST method if you want to do something with user name and password. because when you use GET method, the password would be visible on the URI,

https://samplesite.com/page/login?username=John&password=123
https://sampleste.com/page/login?name1=value1&name2=value2

Instead, you could use POST method to send user name and password values and in that case the URI would like below

https://samplesite.com/page/login

And the values will be sent as,

POST /page/login.asp HTTP/1.1
Host: samplesite.com
name1=value1&name2=value2

And you get below advantages on POST Method for secured transaction with server.

  • It never cached
  • Requests will remain in the browser history
  • Requests cannot be bookmarked
  • Requests have no restrictions on data length

Upvotes: 1

Spring Breaker
Spring Breaker

Reputation: 8251

You can do the following for Login validation,

// Create a new HttpClient and Post Header
            String downloadedString= null;

            HttpClient httpclient = new DefaultHttpClient();


            //for registerhttps://te
            HttpPost httppost = new HttpPost("YOUR LOGIN URL");
            //add data
            try{
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("username", UserName_Edit.getText().toString()));
                nameValuePairs.add(new BasicNameValuePair("password", userPassword_Edit.getText().toString()));

                //add data
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);

                InputStream in = response.getEntity().getContent();
                StringBuilder stringbuilder = new StringBuilder();
                BufferedReader bfrd = new BufferedReader(new InputStreamReader(in),1024);
                String line;
                while((line = bfrd.readLine()) != null)
                    stringbuilder.append(line);

                downloadedString = stringbuilder.toString();

            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("downloadedString:in login:::"+downloadedString);

Use AsyncTask for your authentication and write the above method in the doInBackground().

EDIT

You can follow below tutorials also,

http://sarangasl.blogspot.in/2011/06/android-login-screen-using-httpclient.html

http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/

Hope it helps.

Upvotes: 0

oleksii
oleksii

Reputation: 35925

To pass parameters in HTTP GET you should use a ? delimiter. Such as

https://mywebsite.com/user/login?username=bob&password=123
https://mywebsite.com/user/login?paramname1=value1&paramname2=value2

Make sure to always use https with any sensitive data. You may also need to escape/encode both username and password to allow extended ASCII. If you need to support UNICODE you should consider using a POST request.

Upvotes: 2

Related Questions