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
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
1781 개발 여름나기 채굴 스케줄 온도 체크 프로그램 안녕하세요 땡글에서 채굴 배워 몇달 전부터 시작한 초굴러입니다. 처음 채굴에 눈이멀어 놀고있는 1060, 2080 몇 대를 강제 징용해서 일시키고 하루 커피값 정도 뽑는 재미에 한동안 시간가는 ... 2 2 1133
cim
2021.05.22
1780 개발 반복적인 빗썸의 지연  최근 빗썸에 거래량이 몰리는 경우, 거래가 지연되는 현상이 간혹 있었습니다. 매수/매도를 걸면 30분 후에 거래가 된다던지, 잔액이 맞지 않는 다는 지 등등..    업비트도 간혹 거래가 몰려서... 1 0 938
gondre
2021.05.21
1779 개발 업비트, 바이비트 지표 알람 봇 텔레그램으로 이용 가능한 업비트 및 바이비트 지표 알람 봇입니다. 다수가 참여하는 방이 아니므로 개인의 취향에 따라 코인을 선택적으로 알람 받을 수 있습니다. 업비트 및 바이비트 공지사항... 4 file 0 2059
hany1146
2021.05.21
1778 개발 지갑 전문가님 연락 주세요.   안녕 하세요. 코인 지갑을 운영하고 싶습니다. btc,eth,usdt,erc20,bep20,trc10, 이렇게 몇가지를 사용하고,  1) 개인의 비밀키 내보내기 기능을 넣고, 2) 코인간 스왑 기능을 넣고, 3) 회원간... 1 0 513
스타이로
2021.05.18
1777 질문 파이코인과 채굴, 블록체인 대해서 질문입니다.         제가 알기로는 채굴이란 간단하게 내 컴퓨터의 자원을 활용해서 코인의 위변조를 막는것이고, 이게 블록체인의 바탕이 되는 것입니다. 파이코인은 이러한 자기자원의 소모없이 간단한 출... 2 0 734
체어킹
2021.05.09
1776 질문 업비트 웹소켓 이용해서 시세 받아오는데 질문이요 자바스크립트 사용하고있는데 codes 에 "KRW-BTC","KRW-XRP" 이런식으로 2개 넣었는데    출력은 btc만 나오네요   한번에 여러개의 코인 시세를 불러오고싶은데 해결법 아시는분     업비트 웹... 1 0 1475
난폭킴
2021.05.05
1775 질문 타오바오발 라이저카드 전파법 저촉될까요? 해쉬늘리려고 은근 많아사둿는데 어어 하다보니 글카값이 20퍼이상은 다 올라버렸네요.. 전파법관련 이슈들도많은데 이걸 그대로 팔자니 검색해봐도 나오는것도 없고 애매하네요. 전파법걸린다면... 14 0 734
이더1000
2021.04.28
1774 개발 코인 커뮤니티 차트표 제작완료         코인모의투자 시스템 빗썸 api 연동한거구매해서 사이트에 붙혀넣고 코인차트표 거래소들 api 연동해서 제작해봤는데 어떠신지 한번 봐주실분계신가요 https://coin-score.com 여기입니... 4 0 1132
련둥신
2021.04.11
1773 개발 파이션 시세 라이버러리 4종 소개   1. CryptoCompare pip3 install cryptocompare   import cryptocompare price = cryptocompare.get_price('BTC', 'USD') print(price)     2. Cryptofeed   pip3 install cryptofeed from cryp... 1 1 872
Mkms
2021.04.07
1772 질문 바이비트 API관련문의         혹시 바이비트에서 실시간 금액이나 레버리지같은설정값등을 가져올수있는 방법이있나요? API는 발급만 있던데..   자동매매프로그램을 만들어볼까하는데 어디를 참고해야될지모르겟어요... 1 0 673
연두부
2021.04.05
1771 질문 코딩 왕초보입니다. 업비트 자동매매 봇을 만들고있는데 어떻게 해야할지 모르겠습니다. 도와주세요!! 안녕하세요. 코딩도 코인도 모르는 코린이입니다. 이번에 취미삼아 파이썬으로 코인 자동매매 봇을 만들어보려고 하는데요..조언이 필요합니다. 전체적인 구상은 이렇습니다.   1. 해당 항목을 ... 9 0 3461
소다파이
2021.04.01
1770 개발 GGoletn (꼴렸뜬) 프로젝트를 아십니까?   GGoletn (꼴렸뜬) 프로젝트를 아십니까? 제가 생각하는 개선된 블록체인 프로젝트 입니다.   땅바닥X 라는 깨똑 회사 산하 클레튼 블록체인 프로젝트 입니다. 훌어보니, 나름 ETH 를 많이 참조... 5 1 885
안씨아저씨
2021.03.29
1769 질문 이더리움 프라이빗 네트워크에서의 거래 승인에 대한 질문입니다. 아래는 구글링하다 발견한 "블록체인의 다변화 채굴 없는 블록체인의 확산" 이라는 문서입니다. 논문같기도 하고... 이더리움에 한해서 정의한 내용은 아니고 그냥 블록체인 전반에 대한 내용인 ... 9 file 0 629
비폭력무저항
2021.03.24
1768 개발 업비트 api 지정가 매수 / 익절 / 손절 #프로그램         안녕하세요 !   혹시 업비트에 api활용해서   지정가에 매수 / 익절 / 손절 지정할수있는 프로그램이 있을까요 ??   여러종목 동시에 가능하고  텔레그램으로 알림도 가능하다면 좋구요 ... 10 2 4946
양봉이
2021.03.09
1767 질문 주식모의투자 시스템           안녕하세요 코인,주식 커뮤니티 운영진입니다. 고진감래커뮤니티입니다. 그 뭐야 지금현재 코인모의투자 기능은넣었고 주식,해외선물 모의투자 시스템을 도입하고싶은데 자문을 좀 구... 0 3092
련둥신
2021.03.09
1766 개발 기존 안드로이드앱에 자체(ERC-20)지갑 및 코인결제 시스템     안녕하세요.   제목처럼 기존 안드로이드앱에 자체(ERC-20)지갑 및 코인결제 시스템 개발을 하려합니다. 혹시 가능하신분이나 업체 계실까요?               4 0 5383
LOCOKO
2021.02.26
1765 개발 이더리움 풀노드 전체 데이타 드립니다.   이더리움 풀노드 전체 데이타 드립니다. 이더리움 풀노드 구축해드려요.   이더리움 풀노드 구축시에  geth 로 다운로드 받을 시 20일 정도 걸리실텐데요, 서버 셋팅해주시면 geth 풀노드를 최... 16 1 7905
김대박
2021.02.21
1764 개발 트레이딩뷰에서 liquidation 정보 관련   안녕하세요.  현재 코인관련한 사이트를 만들고 있습니다. 기획을 진행하다가 보니.. 비트맥스나 바이낸스의 트레이딩뷰를 통해 liquidation 정보를  확인 할 수 있더군요.(아래 사이트 참조) ... 1 0 7007
부자아들
2021.02.16
1763 개발 코인 지갑 개발           안녕하세요 형님들 지금 코인/주식 커뮤니티를 만들고있습니다. 이제 회원들이 원하는 콘텐츠를 사이트내에 넣어드리려구하는데 이제 후원게시판? 을만들어서 코인지갑을 사이트내부에... 4 1 7645
련둥신
2021.02.15
1762 개발 채린이의 채굴장 관리 프로그램(자동재부팅, 모니터링, 기타 셋팅 설정) 안녕하세요! 취미로 채굴 및 코딩을 하고있는 직장인겸 투자자 그랑굴러입니다.   채린이 입장에서 직접 채굴해보고, 필요한것이 뭘까 생각하며 만들어 보았습니다. 소개글: https://www.ddengle... 55 file 14 14612
그랑굴러
2021.02.14
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 93 Next
/ 93
default debug random = 0 / type = READ / detected = READ