I am trying to post some json data going through this
http://wiki.apache.org/solr/UpdateJSON tutorial.
As the document shows, the following command should work,

curl 'http://localhost:8983/solr/update/json?commit=true'
--data-binary @books.json -H 'Content-type:application/json'

And it does.
However, doing it with HttpClient is a bit different. I need to post
JSON data from a string. Including the data requires that I create a
StringEntity.
However this leaves me with passing any additional parameters, through
the URL. So the only way I was able to get it to work, is by adding
the parameter (commit=true)
to the url as in the following code.

private static String url =
"http://localhost:8080/solr/update/json?commit=true";;
        @Override
        public void index(ProductData product) {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost post = new HttpPost(url);
                post.addHeader("Content-type", "application/json");
                String d = "[ { \"id\" : \"123\",   \"name\" : \"My Product\" } 
]";
                try {
                        StringEntity entity = new StringEntity(d);
                        entity.setContentEncoding("UTF-8");
                        entity.setChunked(true);
                        entity.setContentType("application/json");
                        post.setEntity(entity);
                        HttpResponse response = httpclient.execute(post);
                        System.out.println(response);
                } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                } catch (ParseException e) {
                        e.printStackTrace();
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }

I googled for this issue, and the closest I was able to find is
http://stackoverflow.com/questions/2017414/post-multipart-request-with-android-sdk,
where the solution suggests using MultiPartEntity.
I am not sure if this is the only way.
So my question is, what do I need to do, to be able to able to set the
parameters on the post request ??

Thank you.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to