HttpClient4模拟请求,发送JSON数据解决思路

HttpClient4模拟请求,发送JSON数据
现在我已经拼接好了JSON字符串,想要通过HttpClient向后台发送数据,采用Post方式,但是不知道该怎么做,网上找的有很多不一样的,求解呀?
我写的代码如下:

public class HttpTest {
   public static void main(String[] args) throws IOException {
       String formStatusData="[{formState:处理中"+"}]";
       DefaultHttpClient httpClient = new DefaultHttpClient();  
       
     
       StringEntity params =new StringEntity(formStatusData,"UTF-8");
      List<NameValuePair> list=URLEncodedUtils.parse(params);
      System.out.println(URLEncodedUtils.format(list, HTTP.UTF_8);//输出结果为空
      String url="http://localhost/seeyon/mattersApplication/mattersApplication.do?method=newMatters&formStatusData="+URLEncodedUtils.format(list, HTTP.UTF_8);
       HttpPost request=new HttpPost(url);
       try {
          
           request.addHeader("content-type", "application/json");  
           request.setEntity(params);  
           HttpResponse response = httpClient.execute(request);  
           int statusCode= response.getStatusLine().getStatusCode();
           if(statusCode==HttpStatus.SC_OK){
               System.out.println("hahah");
           }
       } catch (Exception e) {
           e.printStackTrace();
       }  
    
}

}


但是代码我总是感觉有问题,请大家给一个实例代码吧!谢谢了
------解决方案--------------------
发送json参数,首先你的构造这样的json字符串,你这明显不是json格式的字符串嘛
------解决方案--------------------
以流 的形式写、
------解决方案--------------------
        List<NameValuePair> nvps = new ArrayList<NameValuePair>();
        nvps.add(new BasicNameValuePair(name, userName));  
        nvps.add(new BasicNameValuePair(pass, password));
        httpost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));