goonerDroid goonerDroid - 5 months ago 26
Android Question

How to send a String array as basic name value pair as HTTPPOST?

I want to send a array as name value pair as httppost.My server accepts only array values.The following is my code snippet..

public String SearchWithType(String category_name, String[] type,int page_no) {

String url = "http://myURL";
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);

String auth_token = Login.authentication_token;
String key = Login.key;

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);

try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("authentication_token",
auth_token));
nameValuePairs.add(new BasicNameValuePair("key", key));
nameValuePairs.add(new BasicNameValuePair("category_name",
category_name));
int i = 0;
nameValuePairs.add(new BasicNameValuePair("type", type[i]));
nameValuePairs.add(new BasicNameValuePair("page", String.valueOf(page_no)));

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
eu = EntityUtils.toString(entity).toString();

} catch (IOException ioe) {
String ex = ioe.toString();
return ex;
}

return eu;
}

Answer

i got the issue..the issue was

try {
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("authentication_token",
            auth_token));
    nameValuePairs.add(new BasicNameValuePair("key", key));
    nameValuePairs.add(new BasicNameValuePair("category_name",
            category_name));
    int i = 0;
    nameValuePairs.add(new BasicNameValuePair("type", type[i]));
    nameValuePairs.add(new BasicNameValuePair("page", String.valueOf(page_no)));

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    eu = EntityUtils.toString(entity).toString();

all i had to do was intilize a loop

for (int i = 0; i < type.length; i++) {

             nameValuePairs.add(new BasicNameValuePair("type[]",type[i]));

        }