Yritän näyttää USPS: n lähetysvyöhykkeen tietoja, mutta USPS-sivuston osa, josta käytin näiden tietojen kaapimiseen, on rikki kuukausia ja mietin, tiedäkö kukaan muuta tapaa saada se jäsennettävään muotoon?
Kuukausien ajan rikkoutunut sivu on täällä: http://postcalc.usps.gov/Zonecharts/ZoneChartPrintable.aspx?zipcode=931
Heillä on sama kaavio ei-niin jäsennettävässä muodossa tässä: http://postcalc.usps.gov/Zonecharts/
Teen välimuistiin nämä tiedot, joten niitä ei tarvitse pyytää jatkuvasti, mutta välimuisti tyhjennetään ajoittain, koska vyöhykkeet muuttuvat aika ajoin.
Vastaa
Tässä on koodi, jota käytän noudettaessa JSON-tietoja, jotka täyttävät http://postcalc.usps.gov/Zonecharts/ .
private String getZoneJSON(String zip3Digit) { URL url; HttpURLConnection con; String zoneJSON = null; try { url = new URL("https://postcalc.usps.com/DomesticZoneChart/GetZoneChart?ZIPCode3Digit=" + zip3Digit + "&ExcelFormat=1"); con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"); con.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"); con.setRequestProperty("DNT", "1"); con.setInstanceFollowRedirects(false); InputStream h = (InputStream) con.getContent(); BufferedReader r = new BufferedReader(new InputStreamReader(h)); zoneJSON = r.readLine(); } catch(Exception e) { e.printStackTrace(); } return zoneJSON; }
kommentit
- Tämä on täydellistä, kiitos. En ollut ei ole palannut tarkistamaan uutta sivustoaan hetken kuluttua, mutta olen iloinen, että he palvelevat JSON-merkkijonoa nyt HTML-jäsentämisen sijaan.
Vastaa
Voit myös laskea vyöhykkeen koordinaattien lähtöpisteen SCF (Sectional Center Facility) ja määränpään SCF välisen etäisyyden perusteella
Vyöhyke 1 : Ei-paikalliset vyöhykkeet 50 mailin säteellä lähtöpisteestä
Vyöhyke 2: 51-150 mailin säde
Vyöhyke 3: 151-300 mailin säde
Vyöhyke 4: 301-600 mailin säde
Vyöhyke 5: 601-1000 mailin säde
Vyöhyke 6: 1001-1400 mailin säde
Vyöhyke 7: 1401-1800 mailin säde
Vyöhyke 8: 1801 mailia ja yli
Vyöhyke 9: Postinumerot, jotka on määritetty poikkeuksellisille verkko-olosuhteille
- Voit sakottaa SCF jokaiselle postinumeroille: https://fast.usps.com/fast/fastApp/resources/labelListFiles.action
- Voit saada SCF: n koordinaatit Google-sovellusliittymästä
- Kun sinulla on koordinaatit, on monia tapoja niiden välisen etäisyyden laskemiseksi
- Voit myös ohittaa koordinaatit ja laskea vain itse SCF: n postinumeroiden välisen etäisyyden (ei sen palvelemien postinumeroiden) välillä
vastaus
USPS myy täyden vyöhykekaavion kaikille välillä-zip-yhdistelmille hintaan 63 dollaria: https://postalpro.usps.com/operations/zone-charts
Lähetin yhden, koska en ole löytänyt tätä tietoa missään muualla kuukausien ajan.