<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic 401 Error in ArcGIS API for Python Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-python-questions/401-error/m-p/831451#M3179</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am checking to see if I can access a web site before extracting&amp;nbsp;content However, I get an intermittent 401 error (in bold below) which is resolved&amp;nbsp;when I clear cookies, and/or log off and log back in again.&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Http Error: 401 Client Error: Authorization Required for &lt;/STRONG&gt;&lt;/EM&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;SPAN&gt;url: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fclienturl%3A8080%2Fauth%2F%3Fdu%3DaHR0cDovL3N1c3NleC5tYXBzLmFyY2dpcy5jb20v%26ip%3DMTAuMzcuODEuMjA1OjgwODA%3D" rel="nofollow" target="_blank"&gt;http://clienturl:8080/auth/?du=aHR0cDovL3N1c3NleC5tYXBzLmFyY2dpcy5jb20v&amp;amp;ip=MTAuMzcuODEuMjA1OjgwODA=&lt;/A&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;I do not need a login/password for the site I am trying to access, but it seems on the client side, &lt;BR /&gt;a token is generated, because if I paste the url from the http error message, into my browser, the site displays correctly.&lt;BR /&gt;I need to run this script as a batch job, so this 401 error will be an issue.&amp;nbsp;Is there a way around this problem&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Subset of my Code:&lt;/STRONG&gt; &lt;BR /&gt;&lt;SPAN&gt;req = requests.get("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fsomewebsite" rel="nofollow" target="_blank"&gt;http://somewebsite&lt;/A&gt;&lt;SPAN&gt;")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;if req.status_code == 200:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#check last run date&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;with open('LastRunDate.csv', 'r+', newline='') as f:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader = csv.reader(f)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for row in reader:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lastrundate = row[0]&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pattern = '%Y%m%d%H%M%S'&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;epochdate = int(time.mktime(time.strptime(lastrundate, pattern))) &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;epochdate = epochdate * 100&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;gis2 = GIS("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fsomewebsite.com" rel="nofollow" target="_blank"&gt;https://somewebsite.com&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;newitems = gis2.content.search(query="", max_items = 1000) &lt;BR /&gt;&amp;nbsp; &amp;nbsp;filename = ('ListofAvailableitems_' + str(now.day).zfill(2) + str(now.month).zfill(2) + str(now.year)+ '.csv')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;with open(filename, 'w', newline='') as csvfile:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header = ["County", "Title", "Type", "Item", "Owner", "Date-Created"]&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filewriter = csv.writer(csvfile, quoting=csv.QUOTE_MINIMAL)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filewriter.writerow(header)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for item in newitems:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# check item created date to see if it is greater than the epoch date&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if item.created &amp;gt; epochdate:&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filewriter.writerow(['County1', item.title, item.id, item.type, item.owner, datetime.datetime.fromtimestamp(item.created/1000.0).strftime('%d-%m-%Y')])&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else:&lt;BR /&gt;try:&lt;BR /&gt; req.raise_for_status()&lt;BR /&gt; except requests.exceptions.HTTPError as errh:&lt;BR /&gt; print ("Http Error:",errh)&lt;BR /&gt; except requests.exceptions.ConnectionError as errc:&lt;BR /&gt; print ("Error Connecting:",errc)&lt;BR /&gt; except requests.exceptions.Timeout as errt:&lt;BR /&gt; print ("Timeout Error:",errt)&lt;BR /&gt; except requests.exceptions.RequestException as err:&lt;BR /&gt; print ("OOps: Something Else",err)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 10 Apr 2018 20:06:19 GMT</pubDate>
    <dc:creator>annegrimes2</dc:creator>
    <dc:date>2018-04-10T20:06:19Z</dc:date>
    <item>
      <title>401 Error</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/401-error/m-p/831451#M3179</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am checking to see if I can access a web site before extracting&amp;nbsp;content However, I get an intermittent 401 error (in bold below) which is resolved&amp;nbsp;when I clear cookies, and/or log off and log back in again.&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Http Error: 401 Client Error: Authorization Required for &lt;/STRONG&gt;&lt;/EM&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;SPAN&gt;url: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fclienturl%3A8080%2Fauth%2F%3Fdu%3DaHR0cDovL3N1c3NleC5tYXBzLmFyY2dpcy5jb20v%26ip%3DMTAuMzcuODEuMjA1OjgwODA%3D" rel="nofollow" target="_blank"&gt;http://clienturl:8080/auth/?du=aHR0cDovL3N1c3NleC5tYXBzLmFyY2dpcy5jb20v&amp;amp;ip=MTAuMzcuODEuMjA1OjgwODA=&lt;/A&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;I do not need a login/password for the site I am trying to access, but it seems on the client side, &lt;BR /&gt;a token is generated, because if I paste the url from the http error message, into my browser, the site displays correctly.&lt;BR /&gt;I need to run this script as a batch job, so this 401 error will be an issue.&amp;nbsp;Is there a way around this problem&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Subset of my Code:&lt;/STRONG&gt; &lt;BR /&gt;&lt;SPAN&gt;req = requests.get("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fsomewebsite" rel="nofollow" target="_blank"&gt;http://somewebsite&lt;/A&gt;&lt;SPAN&gt;")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;if req.status_code == 200:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#check last run date&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;with open('LastRunDate.csv', 'r+', newline='') as f:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader = csv.reader(f)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for row in reader:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lastrundate = row[0]&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pattern = '%Y%m%d%H%M%S'&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;epochdate = int(time.mktime(time.strptime(lastrundate, pattern))) &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;epochdate = epochdate * 100&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;gis2 = GIS("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fsomewebsite.com" rel="nofollow" target="_blank"&gt;https://somewebsite.com&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;newitems = gis2.content.search(query="", max_items = 1000) &lt;BR /&gt;&amp;nbsp; &amp;nbsp;filename = ('ListofAvailableitems_' + str(now.day).zfill(2) + str(now.month).zfill(2) + str(now.year)+ '.csv')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;with open(filename, 'w', newline='') as csvfile:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header = ["County", "Title", "Type", "Item", "Owner", "Date-Created"]&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filewriter = csv.writer(csvfile, quoting=csv.QUOTE_MINIMAL)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filewriter.writerow(header)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for item in newitems:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# check item created date to see if it is greater than the epoch date&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if item.created &amp;gt; epochdate:&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filewriter.writerow(['County1', item.title, item.id, item.type, item.owner, datetime.datetime.fromtimestamp(item.created/1000.0).strftime('%d-%m-%Y')])&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else:&lt;BR /&gt;try:&lt;BR /&gt; req.raise_for_status()&lt;BR /&gt; except requests.exceptions.HTTPError as errh:&lt;BR /&gt; print ("Http Error:",errh)&lt;BR /&gt; except requests.exceptions.ConnectionError as errc:&lt;BR /&gt; print ("Error Connecting:",errc)&lt;BR /&gt; except requests.exceptions.Timeout as errt:&lt;BR /&gt; print ("Timeout Error:",errt)&lt;BR /&gt; except requests.exceptions.RequestException as err:&lt;BR /&gt; print ("OOps: Something Else",err)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Apr 2018 20:06:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/401-error/m-p/831451#M3179</guid>
      <dc:creator>annegrimes2</dc:creator>
      <dc:date>2018-04-10T20:06:19Z</dc:date>
    </item>
  </channel>
</rss>

