Я пытаюсь отправить файл JSON через SAS Enterprise Guide, но я считаю, что я делаю некоторую ошибку с кодом.
Ниже приведен мой код:
>> Генерация файла JSON:
data teste30;
set MATABLES.TEMPJSON;
RESP=cat(CUSTOMERID,"|",RESPTRACKING_CD);
CODSMS="WXS";
MOBILE="5511111111";
DATAPARA="09/05/2019";
DATALIMI="10/05/2019";
REMETENTE="TF";
run;
filename code temp;
data _null_;
set teste30;
file code ;
put 'WRITE OPEN OBJECT;'
/ 'WRITE VALUES "TP_SMS" ' CODSMS :$quote. ';'
/ 'WRITE VALUES "NM_REMETENTESMS" ' REMETENTE :$quote. ';'
/ 'WRITE VALUES "NR_TELEFONECELULARSMS" ' MOBILE :$quote. ';'
/ 'WRITE VALUES "TX_MENSAGEMSMS" ' msgtext :$quote. ';'
/ 'WRITE VALUES "DT_PARAENVIOSMS" ' DATAPARA :$quote. ';'
/ 'WRITE VALUES "DT_LIMITEENVIOSMS" ' DATALIMI :$quote. ';'
/ 'WRITE VALUES "DS_CHAVEORIGEMSMS" ' RESP :$quote. ';'
/ 'WRITE CLOSE;'
;
run;
proc json out="%sysfunc(getoption(WORK))/TEST.json" pretty nokeys nosastags;
write open array; /* container for all the data */
%include code;
write close; /* container for all the data */
run;
Мой JSON выглядит нормально.Проблема возникает, когда я пытаюсь отправить его, вызывая API:
>> CALLING API POST
FILENAME POSTA "C:\TEMP\POSTA.TXT";
FILENAME code2 "%sysfunc(getoption(WORK))/test.json";
PROC HTTP
URL="HTTPS://*********/SMS/INCLUISMS"
CT="APPLICATION/JSON"
IN=code2
METHOD="POST"
OUT=POSTA;
HEADERS
"HOST"="*****"
"AUTHORIZATION"="BEARER xxxxxxxxxxxx"
"CONTENT-TYPE"="APPLICATION/JSON"
"CONTENT-LENGTH"="xx"
RUN;
%echoFile(fn=code2);
%PUT HTTP STATUS CODE = &SYS_PROCHTTP_STATUS_CODE. : &SYS_PROCHTTP_STATUS_PHRASE.;
В журнале EG возвращается эта ошибка: ОШИБКА:Ошибка вызова tcpSockRead.Системная ошибка: «Соединение было сброшено узлом».ОШИБКА: Соединение было закрыто.
Я попытался ввести путь и имя файла (физическое) в "IN =" (пример: IN = "C: \ TEMP \ Test.json) - безуспешно.
Кто-нибудь сталкивался с подобным опытом? Как я могу отправить JSON (файл), используя «IN =»? Возможно ли это?
Tks Guys!