



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
向指定 URL 发送 GET 方法的请求 java 2010 03 04 15 44 向指定 URL 发送 GET 方法的请求 2009 10 21 13 28 使用 Java 发送 GET POST 请求 节选自 疯狂 Java 讲义 URL 的 openConnection 方法将返回一个 URLConnection 对象 该对象表示应 用程序和 URL 之间的通信链接 程序可以通过 URLConnection 实例向该 URL 发送请求 读取 URL 引用的资源 通常创建一个和 URL 的连接 并发送请求 读取此 URL 引用的资源需要如下 几个步骤 1 通过调用 URL 对象 openConnection 方法来创建 URLConnection 对象 2 设置 URLConnection 的参数和普通请求属性 3 如果只是发送 GET 方式请求 使用 connect 方法建立和远程资源之间的 实际连接即可 如果需要发送 POST 方式的请求 需要获取 URLConnection 实 例对应的输出流来发送请求参数 4 远程资源变为可用 程序可以访问远程资源的头字段 或通过输入流读 取远程资源的数据 在建立和远程资源的实际连接之前 程序可以通过如下方法来设置请求头字段 qsetAllowUserInteraction 设置该 URLConnection 的 allowUserInteraction 请求头字段的值 qsetDoInput 设置该 URLConnection 的 doInput 请求头字段的值 qsetDoOutput 设置该 URLConnection 的 doOutput 请求头字段的值 qsetIfModifiedSince 设置该 URLConnection 的 ifModifiedSince 请求头字 段的值 qsetUseCaches 设置该 URLConnection 的 useCaches 请求头字段的值 除此之外 还可以使用如下方法来设置 或增加通用头字段 qsetRequestProperty String key String value 设置该 URLConnection 的 key 请求头字段的值为 value 如下代码所示 conn setRequestProperty accept qaddRequestProperty String key String value 为该 URLConnection 的 key 请求头字段的增加 value 值 该方法并不会覆盖原请求头字段的值 而是 将新值追加到原请求头字段中 当远程资源可用之后 程序可以使用以下方法用于访问头字段和内容 qObject getContent 获取该 URLConnection 的内容 qString getHeaderField String name 获取指定响应头字段的值 qgetInputStream 返回该 URLConnection 对应的输入流 用于获取 URLConnection 响应的内容 qgetOutputStream 返回该 URLConnection 对应的输出流 用于向 URLConnection 发送请求参数 注意 如果既要使用输入流读取 URLConnection 响应的内容 也要使用输出流 发送请求参数 一定要先使用输出流 再使用输入流 getHeaderField 方法用于根据响应头字段来返回对应的值 而某些头字段由于 经常需要访问 所以 Java 提供了以下方法来访问特定响应头字段的值 qgetContentEncoding 获取 content encoding 响应头字段的值 qgetContentLength 获取 content length 响应头字段的值 qgetContentType 获取 content type 响应头字段的值 qgetDate 获取 date 响应头字段的值 qgetExpiration 获取 expires 响应头字段的值 qgetLastModified 获取 last modified 响应头字段的值 下面程序示范了如何向 Web 站点发送 GET 请求 POST 请求 并从 Web 站点取得 响应的示例 public class TestGetPost 向指定 URL 发送 GET 方法的请求 param url 发送请求的 URL param param 请求参数 请求参数应该是 name1 value1 BufferedReader in null try String urlName url param URL realUrl new URL urlName 打开和 URL 之间的连接 URLConnection conn realUrl openConnection 设置通用的请求属性 conn setRequestProperty accept conn setRequestProperty connection Keep Alive conn setRequestProperty user agent Mozilla 4 0 compatible MSIE 6 0 Windows NT 5 1 SV1 建立实际的连接 conn connect 获取所有响应头字段 Map String List map conn getHeaderFields 遍历所有的响应头字段 for String key map keySet System out println key map get key 定义 BufferedReader 输入流来读取 URL 的响应 in new BufferedReader new InputStreamReader conn getInputStream String line while line in readLine null result n line catch Exception e System out println 发送 GET 请求出现异常 e e printStackTrace 使用 finally 块来关闭输入流 finally try if in null in close catch IOException ex ex printStackTrace return result 向指定 URL 发送 POST 方法的请求 param url 发送请求的 URL param param 请求参数 请求参数应该是 name1 value1 BufferedReader in null String result try URL realUrl new URL url 打开和 URL 之间的连接 URLConnection conn realUrl openConnection 设置通用的请求属性 conn setRequestProperty accept conn setRequestProperty connection Keep Alive conn setRequestProperty user agent Mozilla 4 0 compatible MSIE 6 0 Windows NT 5 1 SV1 发送 POST 请求必须设置如下两行 conn setDoOutput true conn setDoInput true 获取 URLConnection 对象对应的输出流 out new PrintWriter conn getOutputStream 发送请求参数 out print param flush 输出流的缓冲 out flush 定义 BufferedReader 输入流来读取 URL 的响应 in new BufferedReader new InputStreamReader conn getInputStream String line while line in readLine null result n line catch Exception e System out println 发送 POST 请求出现异常 e e printStackTrace 使用 finally 块来关闭输出流 输入流 finally try if out null out close if in null in close catch IOException ex ex printStackTrace return result 提供主方法 测试发送 GET 请求和 POST 请求 public static void main String args 发送 GET 请求 String s TestGetPost sendGet http localhost 8888 abc login jsp null System out println s 发送 POST 请求 String s1 TestGetPost sendPost http localhost 8888 abc a jsp user 李刚 System out println s1 上面程序中发送 GET 请求时只需将请求参数放在 URL 字符串之后 以 隔开 程序直接调用 URLConnection 对象的 connect 方法即可 如程序中 sendGet 方 法中粗体字代码所示 如果程序需要发送 POST 请求 则需要先设置 doIn 和 doOut 两个请求头字段的值 再使用 URLConnection 对应的输出流来发送请求 参数即可 如程序中 sendPost 方法中粗体字代码所示 不管是发送 GET 请求 还是发送 POST 请求 程序获取 URLConnection 响应的 方式完全一样 如果程序可以确定远程响应是字符流 则可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺门面分租合同范本
- 苗木购销配送合同范本
- 委托油漆加工合同范本
- 军粮供应合同范本
- 燃气框架合同范本
- 商铺租赁合同范本
- 代卖蛋糕合同范本
- 商业租金合同范本
- 社区安全知识培训内容课件
- 门面分租协议合同范本
- 2024年统编版七年级道德与法制上册全册教案汇编(含26个教案)
- 教培机构培训资料如何上好第一次课
- 洗煤厂安全知识培训课件
- 2025年中国邮政集团招聘笔试参考题库含答案解析
- 合同制合同范例
- 2024年司法考试刑法真题及答案
- 《隔离技术规范》课件
- 《云南省学校安全条例(修订草案)》知识培训
- 面向工业智能化时代的新一代工业控制体系架构白皮书
- 四年级下册数学方程题100道及答案
- 浙江省二轻集团招聘笔试题库2024
评论
0/150
提交评论