java.net.URL

说明

  • URLConnection
  • HttpURLConnection extends URLConnection

Demo 请求API,不用发送参数

// 目标地址
URL url = new URL("https://api")
// 转换
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection()
// 设置请求方法
urlConnection.setRequestMethod("GET")
// 从此链接打开一个输入流,读取接口返回的数据,input到我们的内存中。
urlConnection.inputStream.withReader("UTF-8", {
Reader reader -> println(reader.text) }
)

Demo 请求API,发送参数

URL baseUrl = new URL('https://api/')
HttpURLConnection connection = (HttpURLConnection)baseUrl.openConnection()
// 设置请求方法
connection.setRequestMethod("POST")
// 设置需要输出参数给对方
connection.setDoOutput(true)
// 设置请求输出参数类型
connection.setRequestProperty("Content-Type","application/json")
// 输出给对方参数
connection.outputStream.withWriter { java.io.Writer writer -> writer << params}
// 接受返回内容
filebyte = connection.inputStream.getBytes()

理解

URL baseUrl = new URL("http://www.duchaoqun.cn")
HttpURLConnection connection = (HttpURLConnection) baseUrl.openConnection()
connection.setRequestMethod("GET")
connection.setDoInput(true)
def fileBytes = connection.inputStream.getBytes()
GET/POST请求,不需要参数时,当我们需要通过这个URL连接从服务器获取数据到本地内存,就要设置DoInput为true(默认为true)。
connection.setDoOutput(true)
connection.outputStream.withWriter {...}
POST请求,需要参数时,我们要从内存给远程一些参数,就需要设置DoOutput为true(默认为false),然后给它输出一些参数。
posted @   duchaoqun  阅读(571)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示