在 java 中使用数组通过 HTTPGET 获取多个 URL
Using Array to fetch multiple URL via HTTPGET in java
我有一个字符串数组 a[],其中包含几个我想传递到下面的 HttpGet 代码中的 url
for (int i = 0; i < size; i++);{
try (CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build()){
HttpGet httpget = new HttpGet(a[i]);
/*WRITE TO FILE*/
/*try (CloseableHttpResponse response = httpclient.execute(new HttpGet(a[i]))){
HttpEntity entity = response.getEntity();
if (entity != null) {
try (FileOutputStream outstream = new FileOutputStream(AgentRequirements)) {
entity.writeTo(outstream);
}
}
}*/
/*SHOW EXECUTION*/
System.out.println("Executing request " + httpget.getRequestLine());
try (CloseableHttpResponse response = httpclient.execute(httpget)) {
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
}
}
}
我的构建失败了,因为它说系统找不到符号 'i'。有人可以帮忙吗?
删除for循环末尾的;
,因为如果它留在那里,那么forloop就不会循环,因为块已经关闭了。这就是为什么无法在块外找到 i
(您的 try-catch)的原因。
for (int i = 0; i < size; i++);{
// your code
}
与此相同:
for (int i = 0; i < size; i++){}
{
// your code
}
for (int i = 0; i < size; i++);
^
你有一个松散的分号,它打破了你的 for 循环。
您的 for 循环格式不正确:
for (int i = 0; i < 10; i++);{
删除分号“;”
for (int i = 0; i < 10; i++){
for (int i = 0; i < size; i++);
冗余符号“;”在末尾。它关闭 'for loop' 运算符
你这里有什么:
for (int i = 0; i < size; i++);{
...
}
首先是一个带有空语句的循环
for (int i = 0; i < size; i++);
后跟块语句(这与循环无关)
{
...
}
问题出在您的循环中,它迭代但什么都不做,与
相同
for (int i = 0; i < size; i++){
;
}
{
...
}
只需从语句块中删除划分循环的;
。这样,该块将成为每个循环执行的块。
for (int i = 0; i < size; i++){
...
}
仅供参考:
重要的是要知道,没有什么可以阻止您在方法中的任何位置添加块语句。
所以你可以
public static void main(String[] args){
{
int i = 0;
System.out.println(i);
{
int j = 0;
System.out.println(i);
System.out.println(j);
}
System.out.println(j); // ERROR - j doesn't exist here
}
System.out.println(i); // ERROR - i doesn't exist here
}
想法是 i
只存在于该块中,您不能在块外使用它。
我有一个字符串数组 a[],其中包含几个我想传递到下面的 HttpGet 代码中的 url
for (int i = 0; i < size; i++);{
try (CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build()){
HttpGet httpget = new HttpGet(a[i]);
/*WRITE TO FILE*/
/*try (CloseableHttpResponse response = httpclient.execute(new HttpGet(a[i]))){
HttpEntity entity = response.getEntity();
if (entity != null) {
try (FileOutputStream outstream = new FileOutputStream(AgentRequirements)) {
entity.writeTo(outstream);
}
}
}*/
/*SHOW EXECUTION*/
System.out.println("Executing request " + httpget.getRequestLine());
try (CloseableHttpResponse response = httpclient.execute(httpget)) {
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
}
}
}
我的构建失败了,因为它说系统找不到符号 'i'。有人可以帮忙吗?
删除for循环末尾的;
,因为如果它留在那里,那么forloop就不会循环,因为块已经关闭了。这就是为什么无法在块外找到 i
(您的 try-catch)的原因。
for (int i = 0; i < size; i++);{
// your code
}
与此相同:
for (int i = 0; i < size; i++){}
{
// your code
}
for (int i = 0; i < size; i++);
^
你有一个松散的分号,它打破了你的 for 循环。
您的 for 循环格式不正确:
for (int i = 0; i < 10; i++);{
删除分号“;”
for (int i = 0; i < 10; i++){
for (int i = 0; i < size; i++);
冗余符号“;”在末尾。它关闭 'for loop' 运算符
你这里有什么:
for (int i = 0; i < size; i++);{
...
}
首先是一个带有空语句的循环
for (int i = 0; i < size; i++);
后跟块语句(这与循环无关)
{
...
}
问题出在您的循环中,它迭代但什么都不做,与
相同for (int i = 0; i < size; i++){
;
}
{
...
}
只需从语句块中删除划分循环的;
。这样,该块将成为每个循环执行的块。
for (int i = 0; i < size; i++){
...
}
仅供参考:
重要的是要知道,没有什么可以阻止您在方法中的任何位置添加块语句。
所以你可以
public static void main(String[] args){
{
int i = 0;
System.out.println(i);
{
int j = 0;
System.out.println(i);
System.out.println(j);
}
System.out.println(j); // ERROR - j doesn't exist here
}
System.out.println(i); // ERROR - i doesn't exist here
}
想法是 i
只存在于该块中,您不能在块外使用它。