使用数组来获取通过HTTPGET在Java中
问题描述:
多个URL我有一个字符串数组a []包含我要传递到我的HTTPGET代码如下使用数组来获取通过HTTPGET在Java中
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
无法在该块以外找到(您的尝试抓取)。
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循环”操作
答
你有什么在这里:
for (int i = 0; i < size; i++);{
...
}
是先用一个空语句
for (int i = 0; i < size; i++);
跟着块声明(这是因为没事做一个循环与循环)
{
...
}
问题来自你的循环迭代,什么都不做,一样
for (int i = 0; i < size; i++){
;
}
{
...
}
只是删除构成,将来自statemnt块循环的;
。这样,该块将成为每个循环的执行块。
for (int i = 0; i < size; i++){
...
}
FYI:
知道,没有什么阻止你随时随地添加块语句的方法是很重要的。
所以,你可以有
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
仅在该块存在,你不能使用它的块之外。
你的答案更好。它真的解释了为什么和如何。另外我喜欢你的信息片尾:) – Lino