我正在尝试在 java 上使用 http get 请求到我的本地主机,端口号为 4567。 我收到获取请求:“wget -q -O- http://localhost:4567/XXXX” [XXXX 是一些参数 - 不相关]。 我找到了一个用于此类事情的java库 java.net.URLConnection 但似乎 URLConnection 对象应该接收 url/port/.. 和所有其他类型的参数(换句话说,你必须构造对象自己),但是,我收到了完整的 http get 请求,正如我上面所写的。有没有一种方法可以简单地“发送”请求而不处理构造 URLConnection 字段?
您可以使用您的 URL 创建
URL
对象,它会自行找出端口和其他内容。参考:https://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://localhost:4567/XXXX");
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
为什么不使用 Apache HTTPClient 库。使用起来很简单。
HttpClient client = new HttpClient();
<!DOCTYPE html>
<html>
<head>
<title>GET Request with Headers</title>
</head>
<body>
<button id="fetchButton">Выполнить GET-
запрос с заголовком</button>
<p id="responseText"></p>
<script>
const url =
'https://example.com/api/data'; //
Замените на ваш URL
const headers = new Headers();
headers.append('Authorization',
'Bearer YourAccessToken'); //
Замените
на ваш заголовок
const fetchButton =
document.getElementById('fetchButton');
const responseText =
document.getElementById('responseText')
fetchButton.addEventListener('click',
() => {
fetch(url, { headers })
.then(response =>
response.text())
.then(data => {
responseText.textContent = data;
})
.catch(error => {
console.error('Ошибка:', error);
responseText.textContent = 'Произошла
ошибка при выполнении GET-запроса.';
});
});
</script>