My android project I want to send json data (As Arraylist),with header..
and read server response as string..
DefaultHttpClient is deprecated..So,I am using HttpURLConnection..
here is my code:-
@Override public String Signup(String name, String phno) throws Exception { String url="http://address/AndroidProject/userSignup"; // Instantiate and initialise a SignupForm Form suf = new Form(name, phno); // store suf in a list List<NameValuePair> pairs = new ArrayList<NameValuePair>(1); // create the K,V to be sent pairs.add(new BasicNameValuePair("suf", new Gson().toJson(suf))); try { URL url1 = new URL(url); HttpURLConnection connection = (HttpURLConnection) url1.openConnection(); //encoded pairs HttpEntity requestEntity = new UrlEncodedFormEntity(pairs); connection.setRequestMethod("POST"); //add header connection.setRequestProperty("Id", myId); connection.setDoOutput(true); //send data OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); writer.write(requestEntity.toString()); writer.flush(); connection.connect(); // read the output from the server String content = connection.getResponseMessage(); int responseCode = connection.getResponseCode(); // if response HttpStatus is not 'CREATED' if (responseCode != 201) { // throw the error message to the application } // we can return the authToken. return content; } catch (Exception e) { e.printStackTrace(); throw e; } } I am getting error:
Server response string: Required String parameter 'suf' is not present Signup access server error: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 But this code not sending any data to server..where is the problem??Why I cannot post value??what I missed?