자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi RESTClient에서 POST가 안되요!!!
2016.01.27 15:11
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
==>요청 Json
bibliotheca.kr:8080/api/itif/saleInfo.json
{ "AuthKey" : "AD09FASD9F7A9S8D7F98AS7D",
"Count" : 1,
"Sales" : [
{
"PosNo" : "2015000001",
"SaleNo" : "2015102100001",
"SaleSeq" : "1",
"SaleDate" : "2015-10-21 13:23:34",
"No" : "1",
"Isbn" : "9788901234568",
"Serial" : "",
"MappKey" : "",
"Title" : "테스트서명2",
"Author" : "테스트저자2",
"Publisher" : "테스트출판사2",
"PublicationDate" : "2015-10-22",
"Price" : 10000,
"SaleCount" : 1,
"SaleRate" : 90.0,
"Division" : "판매구분",
"StockCount" : 9,
"Comment" : "비고"
}
]
}
==> 응답
{ "Response": {"Result": {"Message": "정상",
"Code": "OK"
}
}
}
RESTClient1.BaseURL := 'bibliotheca.kr:8080/api/itif/saleInfo.json';
RESTRequest1.Accept := 'application/json';
RESTRequest1.Method := TRESTRequestMethod.rmPOST;
RESTRequest1.Resource := '';
RESTRequest1.Params.Clear;
RESTRequest1.Params.AddItem('AuthKey', "AD09FASD9F7A9S8D7F98AS7D", TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('Count', '1' TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('posno', edtSalePosNo.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('saleno', edtSalesaleNo.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('saleseq', edtSaleSaleSeq.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('saledate', edtSaleSaleDate.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('no', edtSaleNo.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('isbn', edtSaleIsbn.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('serial', edtSaleSerial.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('mappkey', edtSaleMappKey.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('title', edtSaleTitle.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('author', edtSaleAuthor.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('publisher', edtSalePublisher.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('publicationdate', edtPublicationDate.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('price', edtSalePrice.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('salerate', edtSaleSaleRate.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('salecount', edtSaleSaleCount.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('division', edtSaleDivision.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('stockcount', edtSaleStockCount.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('comment', edtSaleComment.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Execute;
위처럼 하면
HTTP/1.1 415 Unsupported Media Type
에러 메시지가 나타납니다.
더 진행이 안되요^^
조언 부탁드립니다~~~
Delphi RESTClient에서 POST가 안되요!!!
2016.01.27 15:11
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
==>요청 Json
bibliotheca.kr:8080/api/itif/saleInfo.json
{ "AuthKey" : "AD09FASD9F7A9S8D7F98AS7D",
"Count" : 1,
"Sales" : [
{
"PosNo" : "2015000001",
"SaleNo" : "2015102100001",
"SaleSeq" : "1",
"SaleDate" : "2015-10-21 13:23:34",
"No" : "1",
"Isbn" : "9788901234568",
"Serial" : "",
"MappKey" : "",
"Title" : "테스트서명2",
"Author" : "테스트저자2",
"Publisher" : "테스트출판사2",
"PublicationDate" : "2015-10-22",
"Price" : 10000,
"SaleCount" : 1,
"SaleRate" : 90.0,
"Division" : "판매구분",
"StockCount" : 9,
"Comment" : "비고"
}
]
}
==> 응답
{ "Response": {"Result": {"Message": "정상",
"Code": "OK"
}
}
}
RESTClient1.BaseURL := 'bibliotheca.kr:8080/api/itif/saleInfo.json';
RESTRequest1.Accept := 'application/json';
RESTRequest1.Method := TRESTRequestMethod.rmPOST;
RESTRequest1.Resource := '';
RESTRequest1.Params.Clear;
RESTRequest1.Params.AddItem('AuthKey', "AD09FASD9F7A9S8D7F98AS7D", TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('Count', '1' TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('posno', edtSalePosNo.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('saleno', edtSalesaleNo.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('saleseq', edtSaleSaleSeq.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('saledate', edtSaleSaleDate.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('no', edtSaleNo.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('isbn', edtSaleIsbn.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('serial', edtSaleSerial.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('mappkey', edtSaleMappKey.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('title', edtSaleTitle.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('author', edtSaleAuthor.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('publisher', edtSalePublisher.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('publicationdate', edtPublicationDate.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('price', edtSalePrice.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('salerate', edtSaleSaleRate.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('salecount', edtSaleSaleCount.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('division', edtSaleDivision.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('stockcount', edtSaleStockCount.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('comment', edtSaleComment.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Execute;
위처럼 하면
HTTP/1.1 415 Unsupported Media Type
에러 메시지가 나타납니다.
더 진행이 안되요^^
조언 부탁드립니다~~~
저도 해당 이슈로 검색을 해 봤는데요.
415 Unsupported Media Type 오류의 경우 HTTP Header를 아래와 같이 잘 설정해 줘야 할 것 같습니다.
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
HTTP Header는 속성창에서 Params 추가 후 Kind 속성을 pkHTTPHEADER로 선택 후 설정해 보시기 바랍니다.
그리고 REST Debugger를 이용해 먼저 해당 웹사이트 분석 후 분석한 내용으로 코드에 적용할 수도 있습니다.
http://blog.hjf.pe.kr/143