0

One of the requests on my page has some parameters and in Firefox DevTool it looks like: enter image description here

How is it possible to create this structure in url or just add parameters in Java?

Usually I use Apache HttpPost and then:

 ArrayList<NameValuePair> postParameters;
  postParameters = new ArrayList<NameValuePair>();
  postParameters.add(new BasicNameValuePair("key", "value"));
  httpPost.setEntity(new UrlEncodedFormEntity(postParameters, "UTF-8"));

but have no idea how to pass json as my request parameter...

@Update

So in my example should it looks like:

Map<String, Object> comMap = new HashMap<String, Object>();
Map<String, Object> iMap = new HashMap<String, Object>();
Map<String, Object> mainMap = new HashMap<String, Object>();

comMap.put("p","A");

iMap.put("com", comMap);
iMap.put("t", "b");

mainMap.put("ex", null);
mainMap.put("i(2)", null);
mainMap.put("i(3)", iMap);

where i(2) is i from second line and i(3) is i from third line? How is it possible to add map to HttpPost (if it is correct)?

@Update

I send requests by using:

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost;
httpClient = new DefaultHttpClient();
httpPost = new HttpPost("myUrl");
httpPost.setHeader("headerKey","headerValue");

ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("paramKey", "false"));
httpPost.setEntity(new UrlEncodedFormEntity(postParameters, "UTF-8"));
HttpResponse response = httpClient .execute(httpPost);
karl person
  • 263
  • 1
  • 9

2 Answers2

0

Basic Map acts as a key => value, something like this:

ArrayList<NameValuePair> comList = new ArrayList<NameValuePair>();
ArrayList<NameValuePair> iList = new ArrayList<NameValuePair>();
ArrayList<NameValuePair> mainList = new ArrayList<NameValuePair>();

comList.add(new BasicNameValuePair("p", "A");

iList.add(new BasicNameValuePair("com", comList);
iList.add(new BasicNameValuePair("t", "b"));

mainList.add(new BasicNameValuePair("ex", null));
mainList.add(new BasicNameValuePair("i(2)", null));
mainList.add(new BasicNameValuePair("i(3)", iList));
Nikola Gavric
  • 3,507
  • 1
  • 8
  • 16
0

You can use GSON library and define a class with every field on it like below

Class Car { String name; String color;}

and pass data to it post this class. or you can follow this link

HTTP POST using JSON in Java