java 获取http常见两种方式:
http://solodu.iteye.com/blog/550390
post方式:
protected JSONObject sendMsg(String url, String usercode) {
HttpPost post = null;
HttpClient client = null;
JSONObject jsonResult = null;
try {
post = new HttpPost(url);
client = new DefaultHttpClient();
// 填充表单
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("passwordEncrypt", usercode));
post.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse result = client.execute(post);
if (result.getStatusLine().getStatusCode() == 200) {
String str = "";
try {
/** 读取服务器返回过来的json字符串数据 **/
str = EntityUtils.toString(result.getEntity());
/** 把json字符串转换成json对象 **/
jsonResult = JSONObject.fromObject(str);
} catch (Exception e) {
logger.error("post请求提交失败:" + url, e);
}
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
} finally {
HttpClientUtils.closeQuietly(client);
}
return jsonResult;
}
get方式:
/**
* 访问url 返回xml javabean
* @return
*/
private String getXml() {
HttpClient httpClient = new HttpClient();
// 创建GET方法的实例
GetMethod getMethod = new GetMethod(url);
// 使用系统提供的默认的恢复策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
String xml = null;
try {
// 执行getMethod
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "
+ getMethod.getStatusLine());
}
// 读取内容
byte[] responseBody = getMethod.getResponseBody();
// 处理内容
// System.out.println(new String(responseBody, "GBK"));
xml = new String(responseBody, "GBK");
} catch (Exception e) {
// 发生致命的异常,可能是协议不对或者返回的内容有问题
System.out.println("Please check your provided http address!");
e.printStackTrace();
log.error(e.getMessage());
return xml;
} finally {
// 释放连接
getMethod.releaseConnection();
}
return xml;
}