귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
질문과 답변 질문과 답변 입니다.
글내용 - 질문과 답변
 [질문] POST 방식으로 api 연동문제 
이다
(송보근)
2020-10-06 오후 6:17:12
261회 조회


등록된 파일이 없습니다.

1. 개발/실행 플랫폼

(1) OS :

(2) 개발툴 :

(3) 사용 Database :

2. 개발 중인 프로그램

3. 질문 내용

 

안녕하세요 현재 델파이7 indy10 사용중이고 이카운트 open api 를 연동하려고 합니다 

POST방식으로 요청시에 응답은 오긴오는데 에러응답이 와서 요청데이타가 문제인거 같은데 무었인지 

못찾아서 답답합니다 ㅜㅜ 

 

procedure TForm1.btn1Click(Sender: TObject);

var sUrl: Widestring;
    Code, searchword,result_type : AnsiString;
    Data, DResult : TStringStream;
    i,j, nTotCnt, k: integer;
    sData: TStringList;
    ssIOHandler : TIdSSLIOHandlerSocketOpenSSL;
begin

  Data := TStringStream.Create('');
  sData := TStringList.Create;
  DResult := TStringStream.Create('');
  idhtp1.Create;
  ssIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  ssIOHandler.SSLOptions.Method := sslvSSLv23;
  ssIOHandler.SSLOptions.Mode   := sslmClient;
  idhtp1.IOHandler := ssIOHandler;

  try
    Code := HTTPEncode(UTF8Encode('601879'));          //회사코드


    sUrl := 'https://oapi.ecounterp.com/OAPI/V2/Zone'; //API 요청 URL
    idhtp1.Request.Referer := 'https://oapi.ecounterp.com/OAPI/V2/Zone';

    idhtp1.Request.Host := sUrl;
    idhtp1.HTTPOptions := [];
    sData.Add('COM_CODE:'+Code);                      // 데이터
    idhtp1.Request.ContentType := 'application/json;';

    try

      idhtp1.Post(sUrl, sData, DResult);
    except
      mmo1.Lines.Add(idhtp1.ResponseText); //응답
    end;
  finally
     mmo1.Lines.Add('크기'+ IntToStr(DResult.Size));
     mmo1.Lines.Add(DResult.DataString);

     ssIOHandler.Free;
     DResult.Free;
     sData.Free;
     Data.Free;
  end;

 

이렇게 보냈을시 응답은 

'invalid argument to date encode' 에러나고 여기서 다시 실행 시키면 

크기294
{"Status":"500","Errors":[{"ProgramId":"",
"Name":"",
"Code":"EXP00001",
"Message":"Unsupported Media Type",
"Param":null}],

"Error":{
"Code":0,
"Message":"Unsupported Media Type",
"MessageDetail":""
},
"Timestamp":null,
"RequestKey":null,
"IsEnableNoL4":false,
"RefreshTimestamp":"0",
"AsyncActionKey":null}

 

 

이렇게 응답은 오는데 에러가 뭔지 모르겠어요 ㅠㅠ