From 79d44b88b223127fa2551b4fa49660bfa54e4314 Mon Sep 17 00:00:00 2001
From: unknown <ldecicco@usgs.gov>
Date: Thu, 11 Sep 2014 09:34:30 -0500
Subject: [PATCH] Added error handling

---
 R/getWaterML1Data.r | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/R/getWaterML1Data.r b/R/getWaterML1Data.r
index 554b7cbe..213dd869 100644
--- a/R/getWaterML1Data.r
+++ b/R/getWaterML1Data.r
@@ -24,8 +24,16 @@
 #' unitData <- getWaterML1Data(unitDataURL)
 getWaterML1Data <- function(obs_url){
   
+  h <- basicHeaderGatherer()
   doc = tryCatch({
-    doc <- xmlTreeParse(obs_url, getDTD = FALSE, useInternalNodes = TRUE)
+    returnedDoc <- getURI(obs_url, headerfunction = h$update)
+    if(h$value()["Content-Type"] == "text/xml;charset=UTF-8"){
+      xmlTreeParse(returnedDoc, getDTD = FALSE, useInternalNodes = TRUE)
+    } else {
+      message(paste("URL caused an error:", obs_url))
+      message("Content-Type=",h$value()["Content-Type"])
+      return(NA)
+    }   
     
   }, warning = function(w) {
     message(paste("URL caused a warning:", obs_url))
@@ -36,6 +44,7 @@ getWaterML1Data <- function(obs_url){
     return(NA)
   }) 
   
+  
   doc <- xmlRoot(doc)
   ns <- xmlNamespaceDefinitions(doc, simplify = TRUE)  
   timeSeries <- xpathApply(doc, "//ns1:timeSeries", namespaces = ns)
-- 
GitLab