public JSONObject request(String url, Object sendDTO) {
		HttpClient httpclient = new DefaultHttpClient();

		Map<String, Object> param = BeanUtil.bean2map(sendDTO);
		List<NameValuePair> formparams = new ArrayList<NameValuePair>();
		for (Map.Entry<String, Object> entry : param.entrySet()) {
			if (entry.getValue() != null) {
				String key = entry.getKey();
				String value = entry.getValue().toString();
				formparams.add(new BasicNameValuePair(key, value));
			}
		}
		HttpPost httppost = new HttpPost(url);
		try {
			UrlEncodedFormEntity form = new UrlEncodedFormEntity(formparams,
					"UTF-8");
			httppost.setEntity(form);

			HttpResponse response = null;
			try {
				response = httpclient.execute(httppost);
			} catch (Exception e) {
				// TODO write dto to disk
				throw e;
			}
			HttpEntity entity = response.getEntity();

			int statusCode = response.getStatusLine().getStatusCode();

			if (entity != null && statusCode == HttpStatus.SC_OK) {
				InputStream instream = entity.getContent();
				InputStreamReader reader = new InputStreamReader(instream);
				StringBuilder sb = new StringBuilder();
				int c;
				try {
					while ((c = reader.read()) > -1)
						sb.append((char) c);
				} finally {
					reader.close();
				}
				JSONObject json = JSONObject.fromObject(sb.toString());
				return json;
			}
		} catch (Exception e) {
			logger.error(e);
		} finally {
			httpclient.getConnectionManager().shutdown();
		}
		return null;
	}