develop custom_top_html:no
default debug random = 1 / type = READ / detected = READ

비트멕스 REST API를 자바로 개발하고 있는데요.  filter 파라미터 사용때문에 난관에 봉착했습니다.

filter에 값을 줄때 JSON key value 형식으로 주도록 되어있는데 filter 값만 넣어주면 에러가 발생하네요.

 

예를 들어 GET /order 에 filter={"open": true} 값을 넣어주려고 하는데요. url 인코딩해서 요청하면 아래와 같이 401에러가 뜹니다.

 

---------------------------------------------------------------------------------------------------------------------------------------------------

url >>>> https://www.bitmex.com/api/v1/order?symbol=XBTUSD&filter=%7B%22open%22%3A%20true%7D
signature datas >>>> GET/api/v1/order?symbol=XBTUSD&filter=%7B%22open%22%3A%20true%7D1569121893
signature encoded >>>> f0fba4e4eae6d55e9f286aa5e14de821c823584f0f59bca35cb9c5160a49ee02


2019-09-22 11:11:35.164 ERROR 13520 --- [nio-8813-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException: 401 Unauthorized] with root cause

org.springframework.web.client.HttpClientErrorException: 401 Unauthorized

---------------------------------------------------------------------------------------------------------------------------------------------------

 

url인코딩을 안하면 아래 같은 에러가 발생하구요.

---------------------------------------------------------------------------------------------------------------------------------------------------

url >>>> https://www.bitmex.com/api/v1/order?symbol=XBTUSD&filter={"open": true}
signature datas >>>> GET/api/v1/order?symbol=XBTUSD&filter={"open": true}1569120740
signature encoded >>>> 11f847730f916adf4dee6aa030a972b71279dad2ac02d9eb3da75193e3a0d8d4


2019-09-22 10:52:20.287 ERROR 8904 --- [nio-8813-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Not enough variable values available to expand '"open"'] with root cause

java.lang.IllegalArgumentException: Not enough variable values available to expand '"open"'

---------------------------------------------------------------------------------------------------------------------------------------------------

 

 

비트멕스 사이트의 API 키 사용법에도 URL인코딩해서 값을 전송하는 것으로 되어있고, API Explore에서 filter={"open": true} 값을 넣어서 시도하면 200리턴하고, 개발자도구에서 url 찍어보면 아래처럼 똑같이 url인코딩을 해서 보냅니다.

https://www.bitmex.com/api/v1/order?filter=%7B%22open%22%3A%20true%7D&count=100&reverse=false

 

 

물론 filter 파라미터를 아예 빼버리면 값을 잘 가져오지만 filter에 JSON 형식으로 값을 보낼때 어떻게 처리해야 하는지 당최 모르겠네요. 고수님들의 조언 부탁드립니다.

 

 

 

 

 

 

 

225
댓글 2
  • 이렇게만 해주시면 답 드리기가 어려운데요. JSP에서 어떤식으로 구성했는지도 없구요...
    첫번째 케이스에서는 일단 인증 파라미터가 없어서 난 에러구요.
    두번째는 인수전달이 정상적으로 안된거구요.
  • ?
    설명이 좀 부실했군요.

    현재 제가 만든 봇은 JSP에서는 단지 ajax호출해서 자바 메소드 실행만 하고 모든 처리는 자바에서 합니다.

    JAVA단에서 REST TEMPLATE으로 API 데이터를 가져오는데요.
    URL에 파라미터 값을 줄때는 당연히 아래처럼 ?key=value&key=value&key=value 형식으로 쓰고요.
    https://www.bitmex.com/api/v1/order?symbol=XBTUSD

    그리고 GET방식일 경우 아래처럼 signature datas에도 똑같이 파라미터를 넣은 후에
    GET/api/v1/order?symbol=XBTUSD

    이것을 본문의 signature encoded 부분처럼 SHA256형식으로 인코딩한 signature를 헤더에 api-key, api-secret, api-expires와 함께 넣어서 보냅니다. 시그니처 내용이 틀리면 무조건 인증이 안되면서 401을 반환합니다.

    현재 일반적으로 파라미터를 줄때는 아무문제가 없습니다. 그런데 비트멕스 API에서 filter라는 파라미터를 사용하려면 value에 JSON형식으로 값을 여러개 넣도록 되어 있습니다. 그래서 filter 파라미터에 값을 넣어주면 URL이 아래와 같은 형식이 되는데

    https://www.bitmex.com/api/v1/order?symbol=XBTUSD&filter={"open": true,"aaa":bbb,"ccc":ddd}

    이걸 그대로 보내면 JSON 문법때문에 두번째 같은 에러가 납니다.

    비트멕스 사이트의 API키 사용법이라는 메뉴에 나와있는 샘플 코드를 보면 위의 URL을 아래처럼 URL인코딩 한 후에
    https://www.bitmex.com/api/v1/order?symbol=XBTUSD&filter=%7B%22open%22%3A%20true%7D

    시그니처도 이 상태에서 sha256으로 인코딩해서 보내도록 되어있는데요.
    그렇게 해보니 본문 첫번째 같이 에러를 뱉는다는 겁니다.

    즉, URL에 filter={"open": true,"aaa":bbb,"ccc":ddd} 이런 식의 파라미터를 줄 때 어떻게 처리해야 하는지가 궁금한 부분입니다. 사이트의 샘플코드가 잘못된 건지, 제가 영어가 짧아서 잘못 이해한 건지, 아니면 다른 방법으로 처리해야 하는지 말이죠.

    현재 이런 기능을 안쓰고 샘플봇을 만들어서 테스트 중인데 주문을 한꺼번에 여러개 넣거나, open중인 주문만 가져오지 못해서 불편한 부분이 있습니다. 해결하신 분은 조언좀 부탁드립니다.
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
1661 개발 이더리움 트랜젝션 처리속도를 25 TPS라고 하는 이유 이더리움의 초당 트랜젝션 처리 가능 회수는 15 TPS라고 알려져있습니다. 그러나 좀 더 찾아보면 20~25 TPS라는 내용도 나오긴 하는데 이에 대해서 간단히 살펴보도록 하겠습니다. 현재의 이더리... 3 file 4 25273
ethminer
2019.07.08
1660 개발 사달라 자동매매봇 업데이트 했습니다.     안녕하세요. 마루마루 입니다. 이전에 트레이딩봇 관련해서 테스트 버젼을 올렸었습니다.   이전글 참조 [ https://www.ddengle.com/traders_free/11193656 ]   당분간 유료화 예정이 없어 ... 1 3 26285
마루마루
2019.07.05
1659 질문 서버 이전중에 코인이 싹 사라졌습니다. 코인은 라이트코인 포크로 만든 새로운 코인이구요.. 서버 이전이 있어서 (A --> B)   1. A 서버에서 계정들과 코인수량 다 확인하고 2. B 서버에서 데몬 실행, 정상적으로 블록이 쌓이는 거 확... 13 2 26049
비폭력무저항
2019.06.14
1658 질문 이더리움 블록데이터 동기화 관련되어 질문있습니다.   리믹스를 통해 컨트랙트를 배포하는 중에 이더리움 노드가 아래와 같이 에러문을 출력하여 다시 재 실행 시켰습니다.  다시 재실행하고 동기화 상태를 체크해보니 사진과 같이    currentBlock... 3 file 0 24260
나비잠
2019.06.13
1657 개발 이런 코인있으면....   로그인 할때마다 코인자동으로 지급해주는 코인 어떨까요 웹싸이트들 대부분 수익모델이 제로입니다 이걸 로그인코인이 보상해주는 거조 채굴보상대신 로그인마다 코인을 주는거죠 그러면 수익... 1 1 24559
독수리
2019.06.11
1656 질문 암호화폐/주식 교육 사이트를 만들고 있는데 PG,결제연동사가 허락을 안해주네요; 다른 동영상 강의 사이트들은 PG연동에 문제가 여태 없었는데   암호화폐랑 주식은 안된다고 거품물고 반대 하네요; (도서는 된다고 하는데.. 클라이언트가 책은 생각이 없다고 해서..)   그런 ... 9 1 25729
딥러닝은개뿔
2019.06.11
1655 질문 block.io cURL 처리 방법 아시는 분 연락 부탁합니다(수고비드림)   https://block.io/api/simple/curl https://block.io/api/simple/signing 에서 Withdrawal Actions 처리 방법을  알려주세요.   카톡아이디:imbctab63 수고비 드립니다. 꼭 도아주세요!!!     ... 1 0 23938
부자대박
2019.06.10
1654 개발 이더리움 블록체인과 영지식 증명 스터디원을 모집합니다^^   안녕하세요. 철학자입니다.   이더리움 블록체인 스터디그룹인 D-lab의 <Awesome ZKP>분과에서 공부 같이하실 스터디원을 모집합니다^^   <Awesome ZKP> 분과는 현업 이더리움 블록체인 개발자... 1 25078
철학자
2019.06.07
1653 개발 C#용 비트맥스 API WRAPPER 추천좀 부탁드립니다. https://github.com/BitMEX/api-connectors 위 링크에서 테스트하면 signature not valid 오류가 나네요..                   ------------------------------------- 꼬리말 * 게시글 내용 삭제... 4 0 24394
AAKQ
2019.06.05
1652 개발 바이낸스 api wrapper로 좋은게 있을까요??     파이썬으로 개발하는데 업빗은 pyupbit으로 잘 썼는데 바이낸스는 딱히 마땅한게 안보이는거같고한데 wrapper쓰시는거 좋은거 없나요?? python-binance인가 하는건 설치오류나서 설치도안되... 0 22326
코텀
2019.06.04
1651 질문 포기     국내최대사이트라 제가 땡글에 기웃거린지 수 년째인데도 뭐 캘만한 코인은 1도 없습니다   예전에 쿼키코인과 뭐..... 다른 아류작들이 몇 개 개발자 게시판에 소개됐지만 성공한 것도 1도 ... 5 0 12438
내가총대멘다
2019.06.02
1650 질문 안녕하세여 개발자분들에게 질문좀 해도될까요^^           안녕하세용   저는 트레이딩및  소량챌굴만하는 땡글인입니다 ㅎㅎ   다름이 아니라 요새 아톰이라는 코인을 계속 공부중인데 도통 이해가 잘안되네요 ㅎㅎ   블록체인끼리 이어주는 ... 1 1 8113
냥냥뽄치
2019.06.01
1649 개발 사달라 트레이딩봇 API를 공개합니다. 많은 개발 부탁합니다.   안녕하세요 마루마루입니다.   이번에 사달라 플랫폼 이란걸 만들게 되었는데요    트레이딩 봇을 관리하는 플랫폼 입니다.   계속해서 여러 봇 알고리즘을 추가할수 있는 플랫폼입니다.   이... 2 2 8845
마루마루
2019.05.31
1648 개발 블록체인을 이용한 위변조 방지, 부인방지 개발게시판에 개발관련된 글은 별로 없는것 같아 뻘글이지만 써봅니다.   블록체인이라는것의 순기능에 대해 얘기할때 항상 나오는것이 위변조방지, 부인방지입니다...   한번 입력한 데이터를 ... 5 1 6791
로텔
2019.05.28
1647 개발 코인원 API 송금(Withdrawal) 비트코인만 되나요?   코인원 API 문서를 보니 Send는 Send BTC만 있는데요..   https://doc.coinone.co.kr/#operation/v2_transaction_btc   다른 코인들은 API로 전송이 안되는건가요?   아니면 request 주소만 ht... 2 0 9789
skeee01
2019.05.17
1646 개발 비트코인과 이더리움의 다른 점   코인 개발과 이더리움을 보유하고 계신 분들은 반드시 알아야 하는 필수 경제학 정보입니다   아래 youtube 다큐 내용을 요약하면  미국 달러의 문제점울 지적하고 있으며 달러는 최후엔 멸망... 8 1 13120
핵심코어보기
2019.05.17
1645 개발 채굴관리프로그램 (예스빗매니저 5.0 VER 업데이트)   안녕하세요. 채굴기 자동관리 모니터링프로그램, "예스빗 매니저" 입니다. '예스빗 메니저'는 누구나 쉽고, 빠르게 설치가 가능하지만, 다양한 알고리즘과 기술력을 통해 24시간 채굴장모니터... 3 file 2 7593
예스빗
2019.05.15
1644 질문 코인원 API 에러 - V2 API body is corrupted (코드 첨부)   안녕하세요,   코인원 API를 사용하고 싶은데 문제가 있어서 고수님들의 도움이 필요합니다ㅠ   예제처럼 파이썬으로 개발하는건 아니고 자바로 코드 변경해서 제작중입니다.   API중 limit_bu... 8 0 3335
skeee01
2019.05.12
1643 질문 총 채굴 기간 변경     안녕하세요 ~ 질문 하나만 드릴게요 (알트코인 기준입니다)   만약 선채굴 90억개 이후 5억개의 코인을 100년에 걸쳐서 채굴하게 끔 코딩을 했는데요 여기서 실수로 2번 블록부터 마지막 블... 3 0 1772
페어
2019.05.11
1642 질문 하이퍼레저 구조 질문..       하이퍼레저 패브릭으로 프라이빗 블록체인 환경을 구축했을때,   1. 블록체인 내에서 루트 권환을 가지는 관리자가 따로 있나요? 1-1 있다면, 그 관리자는 모든 거래를 관리하고 데이터들... 0 1032
네탈
2019.05.10
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 93 Next
/ 93
default debug random = 0 / type = READ / detected = READ