Ich habe versucht, mithilfe der Yahoo-API so etwas wie eine EC-Site zu erstellen, bin aber in eine Situation geraten, in der ich überhaupt nicht wusste, wie ich sie verwenden soll. Ich habe es nicht verstanden, auch wenn ich es nachgeschlagen habe, und es war ziemlich schwierig, deshalb werde ich es einschließlich der Bedeutung des Memos aufzeichnen.
Übrigens lerne ich seit ungefähr 3 Monaten Java.
Anscheinend besteht die Möglichkeit, eine Anfrage an die API zu senden, darin, eine Verbindung zur URL herzustellen. Dafür gab es eine Klasse. Das ist die ** HttpURLConnection-Klasse **.
Die grundlegenden Schritte sind
Es ist wie es ist.
//Anwendungs-ID
String appid = "Anwendungs-ID";
//Empfängt Produktschlüsselwörter und speichert sie im String-Typ
request.setCharacterEncoding("UTF-8");
String query = request.getParameter("searchVal");
//URL anfordern
String url = "https://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch?appid="+appid+"&query="+query;
//URL-Generierung für API-Verbindung
URL url4conn = new URL(url);
//Stellen Sie eine Verbindung zur URL für die API-Verbindung her
HttpURLConnection conn = (HttpURLConnection)url4conn.openConnection();
//Geben Sie die HTTP-Methode für GET an
conn.setRequestMethod("GET");
//Erlauben Sie nicht die Einreichung von Anfragen durch den Körper
conn.setDoOutput(false);
//Ermöglichen Sie die Übertragung der Reaktion durch den Körper
conn.setDoInput(true);
//Verbinden
conn.connect();
//Da Sie jedoch beim Lesen ** JASON-Zeichenfolge ** erhalten können, müssen Sie diese mithilfe der Bibliothek in ** JASON-Knoten (Typ für JSON) ** konvertieren. Die grundlegenden Schritte sind: 1. Lesen Sie die Antwort. 2. Konvertieren Sie die JSON-Zeichenfolge in einen JSON-Knoten. Antwort lesen(Holen Sie sich JASON String)
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String json = br.readLine();
//Lesen Sie die JSON-Zeichenfolge und konvertieren Sie sie in das JsonNode-Objekt
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(json);
Die grundlegenden Schritte sind
Es ist wie es ist.
Verwenden Sie ** JsonNode.get () **, um ein bestimmtes Element von einem JSON-Knoten abzurufen.
//Generieren Sie eine ArrayList, in der Beans gespeichert sind, die Produktsuchergebnisse enthalten
ArrayList<productDataBeans> pdbList = new ArrayList<productDataBeans>();
//Extrahieren Sie 10 Elemente aus JSON und speichern Sie sie im String-Typ
//Legen Sie es in Beans fest und speichern Sie Beans in ArrayList
for(int i = 0; i <= 9; i++) {
String hitNum = String.valueOf(i);
String imageURL = root.get("ResultSet").get("0").get("Result").get(hitNum).get("Image").get("Small").textValue();
String productName = root.get("ResultSet").get("0").get("Result").get(hitNum).get("Name").textValue();
String price = root.get("ResultSet").get("0").get("Result").get(hitNum).get("Price").get("_value").textValue();
int SearchResultNum = root.get("ResultSet").get("totalResultsAvailable").asInt();
//Generieren Sie eine Instanz von Beans, um die Ergebnisse der Produktsuche zu speichern
productDataBeans pdb = new productDataBeans();
pdb.setImageURL(imageURL);
pdb.setProductName(productName);
pdb.setPrice(price);
pdb.setQuery(query);
pdb.setSearchResultNum(SearchResultNum);
pdbList.add(pdb);
}
//Speichern Sie ArrayList im Anforderungsbereich
request.setAttribute("resultData", pdbList);
br.close();
request.getRequestDispatcher("/search.jsp").forward(request, response);
Ich erwähnte, dass Sie die gelesene JSON-Zeichenfolge in einen JSON-Knoten konvertieren müssen, aber im Fall von Jackson benötigen Sie drei Bibliotheken.
・ Jackson-Core ・ Jackson-Anmerkungen ・ Jackson-Datenbank
Sie können es herunterladen, indem Sie die verknüpfte Version auswählen und auf die Bundle-Schaltfläche klicken.
Recommended Posts