0

我正在构建一个基本程序来查询 Target 的 API,其中包含商店 ID 和产品 ID,它返回过道位置。但是,我认为我错误地使用了 URL 构造函数(过去我遇到过麻烦,但仍然不完全理解它们)。下面是我的代码,出于显而易见的原因,对 API 密钥进行了编辑。我创建的 URL 在放入浏览器时是有效的,并且没有抛出异常,但最后当我打印出页面的内容时它是空的。我错过了什么?非常感谢任何帮助!

package productVerf;

import java.net.*;
import java.io.*;

public class Verify {
    public static void main(String args[]) {
        // first input is store id second input is product id
        String productID = args[0];
        String storeID = args[1];
        String file = "/v2/products/storeLocations?productId=" + productID
                + "&storeId=" + storeID
                + "&storeId=694&key=REDACTED";
        URL locQuery;
        URLConnection lqConection = null;
        try {

            locQuery = new URL("http", "api.target.com", file);
            lqConection = locQuery.openConnection();
        } catch (IOException e) {
            e.printStackTrace();
        }
        BufferedReader response;
        String responseString = "";
        try {
            response = new BufferedReader(new InputStreamReader(
                    lqConection.getInputStream()));
            while (response.readLine() != null) {
                responseString += response.readLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(responseString);

    }
}
4

1 回答 1

1

也许您只阅读偶数行

你在读一行两次?(在 while 语句中...),看起来您读取了放入 while 条件测试的第一行。如果您的回复仅包含一行,则不会读取任何内容

用这个:

String line;
while ((line=response.readLine()) != null) {
       responseString += line;
}
于 2014-09-27T16:03:43.187 回答