使用 SAS EG 通过代理从 API 下载 JSON 文件

2024-05-05

我正在尝试使用瑞士当局提供的 API 对公司网络内的地址进行地理编码。我的公司使用带有用户名和密码的代理服务器。我是 SAS EG 的新手,这是我迄今为止拥有的代码(我必须匿名一些内容才能被允许在此处发布):

filename response temp;
options set=SSL_USE_SNI=1;
options set=SSL_SNI_HOSTNAME="api3.geo.admin.ch";
proc http
url = 'https://api3.geo.admin.ch/rest/services/api/SearchServer?searchText=Bahnhofstrasse %201%20Zürich&type=locations'
method='GET'
proxyhost = 'http://OURPROXYHOST.ch'
proxyport = 8080
proxyusername = '***'
proxypassword= '***'
out= response
ct = "application/json";
run;

但是,日志不会抛出任何错误或警告,并且运行代码时我没有看到任何输出文件。如果我在浏览器中输入网址,它就会起作用。

我使用的是 SAS EG 7.15 HF7 (7.100.5.6177)(64 位)。我希望你们能在这里帮助我。


输出头是什么样子的,用户HEADEROUT=看看

示例代码(尽管没有代理)

filename response temp;
filename headers  temp;

proc http
  url    = "https://worldpopulationreview.com/static/states/abbr-name.json"
  method = "get"
  out    = response
  ct     = "application/json"
  headerout = headers
;

data _null_;
  infile headers;
  input; 
  put _infile_;
run;

data _null_;
  infile response obs=10;
  input;
  put _infile_;
run;

* libref name same as fileref pointing to json content;
libname response json;

proc copy in=response out=work;
run;

Log

93     headerout = headers
94   ;
95

NOTE: 200 OK
NOTE: PROCEDURE HTTP used (Total process time):
      real time           0.04 seconds
      cpu time            0.00 seconds


96   data _null_;
97     infile headers;
98     input;
99     put _infile_;
100  run;

NOTE: The infile HEADERS is:
      Filename=C:\Users\Richard\AppData\Local\Temp\SAS Temporary Files\_TD4224_HELIUM_\#LN00067,
      RECFM=V,LRECL=32767,File Size (bytes)=531,
      Last Modified=05Nov2020:09:39:53,
      Create Time=05Nov2020:09:39:53

HTTP/1.1 200 OK
Date: Thu, 05 Nov 2020 14:39:55 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
content-disposition: inline; filename="abbr-name.json"
cache-control: public, max-age=0, must-revalidate
content-length: 1057
access-control-allow-origin: *
etag: W/"672e384a87acd2f6547e5127fde8f2fe74c991498d7b468b1e439c3860554ea8"
accept-ranges: bytes
x-vercel-cache: HIT
age: 189
server: Vercel
x-vercel-id: cle1::fz9dn-1604587195926-0957f649b2c8
strict-transport-security: max-age=63072000
NOTE: 16 records were read from the infile HEADERS.
      The minimum record length was 0.
      The maximum record length was 74.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds


101
102  data _null_;
103    infile response obs=10;
104    input;
105    put _infile_;
106  run;

NOTE: The infile RESPONSE is:
      Filename=C:\Users\Richard\AppData\Local\Temp\SAS Temporary Files\_TD4224_HELIUM_\#LN00066,
      RECFM=V,LRECL=32767,File Size (bytes)=1057,
      Last Modified=05Nov2020:09:39:53,
      Create Time=05Nov2020:09:39:53

{
  "AL": "Alabama",
  "AK": "Alaska",
  "AZ": "Arizona",
  "AR": "Arkansas",
  "CA": "California",
  "CO": "Colorado",
  "CT": "Connecticut",
  "DE": "Delaware",
  "DC": "District Of Columbia",
NOTE: 10 records were read from the infile RESPONSE.
      The minimum record length was 1.
      The maximum record length was 31.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds


107
108  * libname same as fileref pointing to json content;
109  libname response json;
NOTE: JSON data is only read once.  To read the JSON again, reassign the JSON LIBNAME.
NOTE: Libref RESPONSE was successfully assigned as follows:
      Engine:        JSON
      Physical Name: C:\Users\Richard\AppData\Local\Temp\SAS Temporary
      Files\_TD4224_HELIUM_\#LN00066
110
111  proc copy in=response out=work;
112  run;

NOTE: Copying RESPONSE.ALLDATA to WORK.ALLDATA (memtype=DATA).
NOTE: BUFSIZE is not cloned when copying across different engines.
      System Option for BUFSIZE was used.
NOTE: There were 51 observations read from the data set RESPONSE.ALLDATA.
NOTE: The data set WORK.ALLDATA has 51 observations and 4 variables.
NOTE: Copying RESPONSE.ROOT to WORK.ROOT (memtype=DATA).
NOTE: BUFSIZE is not cloned when copying across different engines.
      System Option for BUFSIZE was used.
NOTE: There were 1 observations read from the data set RESPONSE.ROOT.
NOTE: The data set WORK.ROOT has 1 observations and 52 variables.
NOTE: PROCEDURE COPY used (Total process time):
      real time           0.02 seconds
      cpu time            0.00 seconds

第一个表复制到工作(ROOT)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SAS EG 通过代理从 API 下载 JSON 文件 的相关文章

  • 生产者程序中的 kafka 网络处理器错误(ArrayIndexOutOfBoundsException:18)

    我有下面的 kafka Producer Api 程序 我对 kafka 本身是新手 下面的代码从 API 之一获取数据并将消息发送到 kafka 主题 package kafka Demo import java util Propert
  • 如何修复 jq 扁平化 JSON 数组的重复输出

    我正在尝试使用 jq 命令压平 JSON 文件 但输出是重复的 请在这里查看我的jqplay https jqplay org s gwvMIH fed https jqplay org s gwvMIH fed 我的输入 JSON cos
  • 循环选项在 youtube js api 中不起作用

    我想知道为什么我的代码不循环播放视频 除了循环选项之外 一切正常 我真的需要它 多谢 div You need Flash player 8 and JavaScript enabled to view this video div
  • Spring JSON序列化、Gson反序列化

    我目前在某些内部对象的反序列化方面遇到问题 在春天 我在使用输出之前初始化所有对象 ResponseBody 例如 这是一个响应 id 1 location id 1 extra location data id 2 location 1
  • 未捕获的类型错误:未定义不是函数

    我收到消息Uncaught TypeError Undefined is not a function当我尝试调用家庭控制器中的方法时 也许关于我为什么收到此消息的建议 findIdpActivities function pernr ca
  • 在 shell 中处理 json 时,例如使用curl,如何正确地将多个 jq 语句链接在一起?

    我是 jq 新手 所以如果这不是 jq 问题或 json 问题 请为我指出正确的方向 我不确定正确的术语 因此我很难正确地阐明问题 我正在使用curl 来提取一些json 我想过滤掉具有特定值的键 以下是一些示例 json id 593f4
  • 可以通过 url 发送 JSON 吗?

    我有一个 ruby 哈希 其中键是 url 值是整数 我将哈希值转换为 JSON 我想知道是否能够通过 AJAX 请求在 url 内发送 JSON 然后从 params 哈希值中提取该 JSON 另外 我将把 JSON 化的 ruby 哈希
  • Laravel 5.4 将json保存到数据库

    帮我将 json 保存到数据库 表字段类型 文本 我有带有强制转换数组的模型 class Salesteam extends Model protected casts team members gt array 我想要像这样 index
  • 使用 JSONArray 还是普通数组来存储/读取数据更有效?

    我正在使用一个连接到PHP MySQL返回所有内容的服务器JSON格式 例如 用户列表作为JSONArray of JSONObject 每个对象都包含单个用户的信息 姓名 位置 电话号码等 处理这种格式的信息时 将所有内容保留在其中会更有
  • JAVA中遍历JSON数据

    我是 JSON 新手 我使用 HTTPUrlConnections 并在 JAVA 程序中获得一些响应 响应数据将类似于 data id 1 userId 1 name ABC modified 2014 12 04 created 201
  • PHP Json_encode 将空格更改为加号 +

    我有一个网络应用程序 我首先将 JSON 数据存储在 cookie 中 然后每 x 秒保存到数据库 它只是打开与服务器的连接 服务器读取 cookie 它实际上并不通过 POST 或 GET 发送任何内容 当我保存到 cookie 时 我的
  • 如何为 json 请求对象指定可选元素

    在 API 蓝图中 我希望为 POST 消息指定一个可选的 json 元素 示例 Add a new User POST To add a User send a JSON Request application json name A n
  • 如何(安全)将 Python 对象发送到我的 Flask API?

    我目前正在尝试构建一个 Flask Web API 它能够在 POST 请求中接收 python 对象 我使用 Python 3 7 1 创建请求 使用 Python 2 7 运行 API 该 API 设置为在我的本地计算机上运行 我试图发
  • 歌曲搜索和流预览 API [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有 API 可以让我搜索歌曲 然后在我的网站上流式传输该歌曲的预览 查看了 Amazon MP3 但
  • 如何使用远程访问 API 获取 jenkins 的系统配置

    詹金斯提供了很好的远程访问API https wiki jenkins ci org display JENKINS Remote access API 可用于获取大量信息 例如作业和视图 我想知道是否或如何从远程访问 API 获取系统 全
  • 将 Gson 与路径一起使用

    使用简单的 Json 文件 例如 menu id file value File popup menuitem value New onclick CreateNewDoc value Open onclick OpenDoc value
  • 使用 AFNetworking 2.0 发布 JSON 数据

    我有一个 Web 脚本 它通过 HTTP POST 请求接受 JSON 字符串作为输入 我遇到过几个相同的 AFNetworking 1 x 示例 任何人都可以指出我或提供 AFNetworking 2 0 示例 以对使用格式化 JSON
  • Office 2010 中的 SAS DDE 问题

    当我运行 Office 2007 时 我的 SAS DDE 脚本可以很好地填充 保存并关闭 Excel 文件 我最近更新到 Office 2010 总体工作正常 但 Excel 在保存对话框中停止 我必须手动单击 保存 而以前我不需要这样做
  • JSON 对象数组转 Java POJO

    将此 JSON 对象转换为 java 中的类 您的 POJO 类中的映射将如何 ownerName Robert pets name Kitty name Rex name Jake This kind of question is ver
  • flutter中api调用哪种方式最好

    我是颤振开发的新手 最近听说了Dio和Http包用于api调用 这是 api 调用的最佳选择 如果有人有更好的api服务方式 CreateAccountRepository internal static final CreateAccou

随机推荐