From 6279345c008d15b2efec7469e35c314d2bebb919 Mon Sep 17 00:00:00 2001
From: unknown <ldecicco@usgs.gov>
Date: Tue, 16 Dec 2014 10:57:40 -0600
Subject: [PATCH] Switched to getWebService function.

---
 R/whatNWISsites.R | 73 +++++++++++++++++++----------------------------
 1 file changed, 29 insertions(+), 44 deletions(-)

diff --git a/R/whatNWISsites.R b/R/whatNWISsites.R
index f331a806..83d9707e 100644
--- a/R/whatNWISsites.R
+++ b/R/whatNWISsites.R
@@ -40,53 +40,38 @@ whatNWISsites <- function(...){
   baseURL <- "http://waterservices.usgs.gov/nwis/site/?format=mapper&"
   urlCall <- paste(baseURL,
                    urlCall,sep = "")
-  
-  h <- basicHeaderGatherer()
-  
-  possibleError <- tryCatch({
-    h <- basicHeaderGatherer()
-    returnedDoc <- getURI(urlCall, headerfunction = h$update)      
-  }, warning = function(w) {
-    warning(w, "with url:", urlCall)
-  }, error = function(e) {
-    stop(e, "with url:", urlCall)
-  }) 
-  
-  headerInfo <- h$value()
 
-  if (headerInfo['status'] == "200"){
-  
-    doc <- xmlTreeParse(returnedDoc, getDTD = FALSE, useInternalNodes = TRUE)
-    doc <- xmlRoot(doc)
-    numChunks <- xmlSize(doc)
-    for(i in 1:numChunks){
-      chunk <- doc[[1]]
-      site_no <- as.character(xpathApply(chunk, "site/@sno"))
-      station_nm <- as.character(xpathApply(chunk, "site/@sna"))
-      site_tp_cd <- as.character(xpathApply(chunk, "site/@cat"))
-      dec_lat_va <- as.numeric(xpathApply(chunk, "site/@lat"))
-      dec_long_va <- as.numeric(xpathApply(chunk, "site/@lng"))
-      agency_cd <- as.character(xpathApply(chunk, "site/@agc"))
-      
-      df <- data.frame(agency_cd, site_no, station_nm, site_tp_cd, 
-                       dec_lat_va, dec_long_va, stringsAsFactors=FALSE) 
-      
-      if(1==i){
-        retval <- df
-      } else {
-        retval <- rbind(retval, df)
-      }
-    }
-    
-    retval <- retval[!duplicated(retval),]
+  rawData <- getWebServiceData(urlCall)
+
+
+  doc <- xmlTreeParse(rawData, getDTD = FALSE, useInternalNodes = TRUE)
+  doc <- xmlRoot(doc)
+  numChunks <- xmlSize(doc)
+  for(i in 1:numChunks){
+    chunk <- doc[[1]]
+    site_no <- as.character(xpathApply(chunk, "site/@sno"))
+    station_nm <- as.character(xpathApply(chunk, "site/@sna"))
+    site_tp_cd <- as.character(xpathApply(chunk, "site/@cat"))
+    dec_lat_va <- as.numeric(xpathApply(chunk, "site/@lat"))
+    dec_long_va <- as.numeric(xpathApply(chunk, "site/@lng"))
+    agency_cd <- as.character(xpathApply(chunk, "site/@agc"))
     
-    retval$queryTime <- Sys.time()
-    attr(retval, "url") <- urlCall
-    attr(retval, "queryTime") <- Sys.time()
+    df <- data.frame(agency_cd, site_no, station_nm, site_tp_cd, 
+                     dec_lat_va, dec_long_va, stringsAsFactors=FALSE) 
     
-    return(retval)
-  } else {
-    stop("Status:", headerInfo['status'], ": ", headerInfo['statusMessage'], "\nFor: ", urlCall)
+    if(1==i){
+      retval <- df
+    } else {
+      retval <- rbind(retval, df)
+    }
   }
+    
+  retval <- retval[!duplicated(retval),]
+  
+  retval$queryTime <- Sys.time()
+  attr(retval, "url") <- urlCall
+  attr(retval, "queryTime") <- Sys.time()
+  
+  return(retval)
   
 }
-- 
GitLab