我是靠谱客的博主 灵巧红酒,最近开发中收集的这篇文章主要介绍java操作new HttpPost(URL)和 new URL(shixun_ip) 获取流,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
HttpClient:
private static HttpClient httpClient;
static {
if (httpClient == null) {
HttpParams params = new BasicHttpParams();
// 设置一些基本参数
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
// 超时设置 /* 从连接池中取连接的超时时间 */
ConnManagerParams.setTimeout(params, 1000);
/* 连接超时 */
HttpConnectionParams.setConnectionTimeout(params, 2000);
/* 请求超时 */
HttpConnectionParams.setSoTimeout(params, 4000);
SchemeRegistry schReg = new SchemeRegistry();
schReg.register(new Scheme("http", PlainSocketFactory
.getSocketFactory(), 80));
schReg.register(new Scheme("https", SSLSocketFactory
.getSocketFactory(), 443));
// 使用线程安全的连接管理来创建HttpClient
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(
params, schReg);
httpClient = new DefaultHttpClient(conMgr, params);
}
}
@SuppressWarnings("unchecked")
private <T> T getJsonObjectFromUrl(String urlStr,
List<NameValuePair> params, Class<T> className) throws Exception{
T object = null;
InputStream in = null;
try {
HttpPost httpPost = new HttpPost(urlStr);
if (params != null) {
// List<NameValuePair> nvps = new ArrayList<NameValuePair>();
// for (Entry<String, String> entry : params.entrySet()) {
// nvps.add(new BasicNameValuePair(entry.getKey(), entry
// .getValue()));
// }
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
}
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
if(entity!=null){
in= entity.getContent(); //之前没使用这个造成了大量异常抛出
}
/*String s = EntityUtils.toString(in, "UTF-8");
if (entity != null) {
EntityUtils.consume(entity);
}*/
String s = inputStream2String(in,"UTF-8");
JsonResult jsonResult = (JsonResult)JSONObject.parseObject(s, JsonResult.class);
if(jsonResult.getCode() == 200){
Object obj = jsonResult.getData();
if(obj != null){
if(className.isInstance(obj)){
object = (T)(obj);
}
else if(obj instanceof JSONObject){
object= JSONObject.parseObject(obj.toString(), className);
}
}
}else{
throw new Exception(jsonResult.getMsg());
}
if(in!=null){
in.close();
}
} catch (Exception e) {
throw e;
}
return object;
}
登录后复制
new URL():
try{
<span style="white-space:pre"> </span>//省略
URL shixun = new URL(url);
InputStream in = shixun.openStream();
long end = System.currentTimeMillis();
if((end-start)<=5000){ //5s内不响应就跳过
String ret = cn.com.jsoft.jframe.utils.StringUtils.toString(in, "utf-8");
JSONObject obj = JSONObject.fromObject(ret);
if(obj!=null&&obj.getJSONObject("info")!=null&&obj.containsKey("info")==true){
JSONObject info = obj.getJSONObject("info");
JSONArray data = info.getJSONArray("data");
if(data!=null&&data.size()>0){
for(int i=0;i<data.size();i++){
JSONObject entry = data.getJSONObject(i);
}
}
}
in.close();
}
}catch (Exception e) {
e.printStackTrace();
}
登录后复制
java将InputStream转为String
public static String inputStream2String(InputStream is, String charset) {
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
int i = -1;
while ((i = is.read()) != -1) {
baos.write(i);
}
return baos.toString(charset);
} catch (IOException e) {
e.printStackTrace();
logger.error("FileWRUtil.inputStream2String(InputStream is, String charset) occur error:"
+ e.getMessage());
} finally {
if (null != baos) {
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
logger.error("FileWRUtil.inputStream2String(InputStream is, String charset) occur error:"
+ e.getMessage());
}
baos = null;
}
}
return null;
}
登录后复制
以上就是java操作new HttpPost(URL)和 new URL(shixun_ip) 获取流的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是灵巧红酒为你收集整理的java操作new HttpPost(URL)和 new URL(shixun_ip) 获取流的全部内容,希望文章能够帮你解决java操作new HttpPost(URL)和 new URL(shixun_ip) 获取流所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复