Java中HttpURLConnection的使用示例

2024-08-20 17:48

本文主要是介绍Java中HttpURLConnection的使用示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java中HttpURLConnection的使用示例

1.测试获取百度首页文本内容并输出:

public class TestUrlConnection {/*** 测试获取百度首页文本内容并输出* */public static void main(String[] args) throws Exception {String link = "http://www.baidu.com";URL url = new URL(link);HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();urlCon.setReadTimeout(5 * 1000);urlCon.setRequestMethod("GET");InputStream is =  urlCon.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);String inputLine;StringBuilder result = new StringBuilder("");if((inputLine = br.readLine()) != null){result.append(inputLine);}System.out.println(result);urlCon.disconnect();}
}

2.使用代理:
/*** 测试使用代理* */
public class MyProxy {public static InputStream getProxy(String url){try {//设置代理SocketAddress addr = new InetSocketAddress("127.0.0.1",8087);Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); URL url_  = new URL(url);InputStream stream = (InputStream)url_.openConnection(proxy).getInputStream();return stream;} catch (Exception e) {e.printStackTrace();return null;}  }
}
3.测试解析从页面获得的json对象:
下面的示例是调用百度地图的api获得某一地址所对应的地理坐标(经纬度值及相关的参数),百度地图api返回的json对象格式如下:
{status: 0,result: {location: {lng: 116.30814954222,lat: 40.056885091681},precise: 1,confidence: 80,level: "商务大厦"}
}

/*** 测试解析从页面获得的json对象*/public static void main(String[] args) throws Exception {String link = "http://api.map.baidu.com/geocoder/v2/?address=清华大学&city=北京市&output=json&ak=foPosAdfuOAaNz8zc5964bFw&callback=showLocation";URL url = new URL(link);HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();urlCon.setReadTimeout(5 * 1000);urlCon.setRequestMethod("GET");InputStream is =  urlCon.getInputStream();InputStreamReader isr = new InputStreamReader(is,"UTF-8");BufferedReader br = new BufferedReader(isr);String inputLine;StringBuilder result = new StringBuilder("");if((inputLine = br.readLine()) != null){result.append(inputLine);}
//		System.out.println(result);urlCon.disconnect();br.close();String result_ = result.toString().trim();String jsonStr = result_.substring(27, (result_.length() - 1));//System.out.println(jsonStr);JSONObject rootNode = new JSONObject(jsonStr);  // System.out.println(rootNode); int status = rootNode.getInt("status");//返回结果状态值, 成功返回0if (status == 0){//如果返回成功JSONObject resultNode =  (JSONObject) rootNode.get("result");int precise = resultNode.getInt("precise");//精度,位置的附加信息,是否精确查找。1为精确查找,0为不精确int confidence = resultNode.getInt("confidence");//可信度String level = resultNode.getString("level");//地址类型JSONObject locationNode =  (JSONObject) resultNode.get("location");double lng = locationNode.getDouble("lng");//经度double lat = locationNode.getDouble("lat");//纬度System.out.println("status:" + status + '\t' + "precise:" + precise + '\t' +  "confidence:" + confidence + '\t' + "level:" + level  +'\n' + "lng:" + lng + '\t' + "lat:" + lat);}}
}











这篇关于Java中HttpURLConnection的使用示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090759

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

Java中如何正确的停掉线程

《Java中如何正确的停掉线程》Java通过interrupt()通知线程停止而非强制,确保线程自主处理中断,避免数据损坏,线程池的shutdown()等待任务完成,shutdownNow()强制中断... 目录为什么不强制停止为什么 Java 不提供强制停止线程的能力呢?如何用interrupt停止线程s

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP