ebay.Ebay.java Source code

Java tutorial

Introduction

Here is the source code for ebay.Ebay.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ebay;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import pojo.Producto;
import util.EbayDAO;

/**
 *
 * @author miguel
 */
public class Ebay {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        HttpClient client = null;
        HttpResponse response = null;
        BufferedReader rd = null;
        Document doc = null;
        String xml = "";
        EbayDAO<Producto> db = new EbayDAO<>(Producto.class);
        String busqueda;

        while (true) {
            busqueda = JOptionPane.showInputDialog(null, "ingresa una busqueda");
            if (busqueda != null) {
                busqueda = busqueda.replaceAll(" ", "%20");
                try {
                    client = new DefaultHttpClient();
                    /*
                     peticion GET
                     */
                    HttpGet request = new HttpGet("http://open.api.ebay.com/shopping?" + "callname=FindPopularItems"
                            + "&appid=student11-6428-4bd4-ac0d-6ed9d84e345" + "&version=517&QueryKeywords="
                            + busqueda + "&siteid=0" + "&responseencoding=XML");
                    /*
                     se ejecuta la peticion GET
                     */
                    response = client.execute(request);
                    rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
                    /*
                     comienza la lectura de la respuesta a la peticion GET
                     */
                    String line;
                    while ((line = rd.readLine()) != null) {
                        xml += line + "\n";
                    }
                } catch (IOException ex) {
                    Logger.getLogger(Ebay.class.getName()).log(Level.SEVERE, null, ex);
                }

                /*
                 creamos nuestro documentBulder(documento constructor) y obtenemos 
                 nuestro objeto documento apartir de documentBuilder
                 */
                try {
                    DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
                    doc = documentBuilder.parse(new InputSource(new ByteArrayInputStream(xml.getBytes("utf-8"))));
                } catch (ParserConfigurationException | SAXException | IOException ex) {
                    Logger.getLogger(Ebay.class.getName()).log(Level.SEVERE, null, ex);
                }

                Element raiz = doc.getDocumentElement();
                if (raiz == null) {
                    System.exit(0);
                }
                if (raiz.getElementsByTagName("Ack").item(0).getTextContent().equals("Success")) {
                    NodeList array = raiz.getElementsByTagName("ItemArray").item(0).getChildNodes();
                    for (int i = 0; i < array.getLength(); ++i) {
                        Node n = array.item(i);

                        if (n.getNodeType() != Node.TEXT_NODE) {
                            Producto p = new Producto();
                            if (((Element) n).getElementsByTagName("ItemID").item(0) != null)
                                p.setId(new Long(
                                        ((Element) n).getElementsByTagName("ItemID").item(0).getTextContent()));
                            if (((Element) n).getElementsByTagName("EndTime").item(0) != null)
                                p.setEndtime(
                                        ((Element) n).getElementsByTagName("EndTime").item(0).getTextContent());
                            if (((Element) n).getElementsByTagName("ViewItemURLForNaturalSearch").item(0) != null)
                                p.setViewurl(((Element) n).getElementsByTagName("ViewItemURLForNaturalSearch")
                                        .item(0).getTextContent());
                            if (((Element) n).getElementsByTagName("ListingType").item(0) != null)
                                p.setListingtype(
                                        ((Element) n).getElementsByTagName("ListingType").item(0).getTextContent());
                            if (((Element) n).getElementsByTagName("GalleryURL").item(0) != null)
                                p.setGalleryurl(
                                        ((Element) n).getElementsByTagName("GalleryURL").item(0).getTextContent());
                            if (((Element) n).getElementsByTagName("PrimaryCategoryID").item(0) != null)
                                p.setPrimarycategoryid(new Integer(((Element) n)
                                        .getElementsByTagName("PrimaryCategoryID").item(0).getTextContent()));
                            if (((Element) n).getElementsByTagName("PrimaryCategoryName").item(0) != null)
                                p.setPrimarycategoryname(((Element) n).getElementsByTagName("PrimaryCategoryName")
                                        .item(0).getTextContent());
                            if (((Element) n).getElementsByTagName("BidCount").item(0) != null)
                                p.setBidcount(new Integer(
                                        ((Element) n).getElementsByTagName("BidCount").item(0).getTextContent()));
                            if (((Element) n).getElementsByTagName("ConvertedCurrentPrice").item(0) != null)
                                p.setConvertedcurrentprice(new Double(((Element) n)
                                        .getElementsByTagName("ConvertedCurrentPrice").item(0).getTextContent()));
                            if (((Element) n).getElementsByTagName("ListingStatus").item(0) != null)
                                p.setListingstatus(((Element) n).getElementsByTagName("ListingStatus").item(0)
                                        .getTextContent());
                            if (((Element) n).getElementsByTagName("TimeLeft").item(0) != null)
                                p.setTimeleft(
                                        ((Element) n).getElementsByTagName("TimeLeft").item(0).getTextContent());
                            if (((Element) n).getElementsByTagName("Title").item(0) != null)
                                p.setTitle(((Element) n).getElementsByTagName("Title").item(0).getTextContent());
                            if (((Element) n).getElementsByTagName("ShippingServiceCost").item(0) != null)
                                p.setShippingservicecost(new Double(((Element) n)
                                        .getElementsByTagName("ShippingServiceCost").item(0).getTextContent()));
                            if (((Element) n).getElementsByTagName("ShippingType").item(0) != null)
                                p.setShippingtype(((Element) n).getElementsByTagName("ShippingType").item(0)
                                        .getTextContent());
                            if (((Element) n).getElementsByTagName("WatchCount").item(0) != null)
                                p.setWatchcount(new Integer(
                                        ((Element) n).getElementsByTagName("WatchCount").item(0).getTextContent()));
                            if (((Element) n).getElementsByTagName("ListedShippingServiceCost").item(0) != null)
                                p.setListedshippingservicecost(
                                        new Double(((Element) n).getElementsByTagName("ListedShippingServiceCost")
                                                .item(0).getTextContent()));
                            try {
                                db.insert(p);
                            } catch (Exception e) {
                                db.update(p);
                            }
                        }
                    }
                }
                Ventana.crear(xml);
            } else
                System.exit(0);

        }
    }

}