0

通路の場所を返す店舗 ID と製品 ID を使用して Target の API をクエリする基本的なプログラムを作成しています。ただし、URL コンストラクターの使い方が間違っていると思います (過去に問題があり、まだ完全には理解していません)。以下は私が持っているコードで、明らかな理由で API キーを編集しています。私が作成した URL は、ブラウザに挿入すると有効であり、例外はスローされませんが、最後にページの内容を印刷すると null になります。私は何が欠けていますか?どんな助けでも本当に感謝しています!

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 条件テストにドロップされた最初の行を読み取っているように見えます。応答に 1 行しか含まれていない場合、何も読み取られません

これを使って:

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