티스토리 뷰

반응형

안녕하세요 종백이 입니다😎

 

최근에 네이버 커머스 API 가 오픈하면서 스마트 스토어에 필요한 기능들을 사용해 볼 수 있게 되었습니다!

네이버 커머스 API 바로가기

 

네이버 커머스API센터

커머스API를 활용해서 다양한 아이디어로 새로운 기회를 잡아보세요.

apicenter.commerce.naver.com

스마트 스토어 판매자로서 아주 좋은 소식이네요 ㅎㅎ 하나하나 연동을 다 하는 중에 상품 이미지 다건 등록에서 이미지를 서버에 보내야 하는 것을 발견했습니다!

 

보통 서버로 전송하는 것들은 json 형태나 문자열 형식의 무언가였는데 이미지를 보내라고 하네요..? 설명도 없고 어떻게 하라는지 몰라서 아주 난처했습니다 ㅎㅎ

 

하지만! 우리의 친구 stackover flow는 모든 것을 알고 있었습니다 ㅎㅎ 제가 참고한 글은 바로 아래 글입니다!

stackover flow 글 확인하기

 

How to upload file with python requests?

I'm performing a simple task of uploading a file using Python requests library. I searched Stack Overflow and no one seemed to have the same problem, namely, that the file is not received by the se...

stackoverflow.com

 

네이버 python 샘플 코드에서는 아래와 같은 알 수 없는 문자열을 전송하라고 되어있고 그나마 있는 짧은 설명에도 보내는 타입이 Array of strings <binary>로 되어있습니다.

payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"imageFiles\"\r\n\r\n[\"string\"]\r\n-----011000010111000001101001--\r\n\r\n"

그래서 이미지를 numpy를 이용해 이진법으로 보내야 하나 생각하던 중 stackoverflow에서 file을 보내는 방법을 찾았습니다.

 

그래서 file을 어떻게 보내느냐! 간단히 설명을 해드리면 open함수를 이용해 이미지를 열어서 type을 적어 보내면 가능했습니다. 아래는 stackoverflow에 나온 예시입니다 ㅎㅎ

files = {'upload_file': ('foobar.txt', open('file.txt','rb'), 'text/x-spam')}

이런 방식으로 여러 이미지를 보내는 방법은 아래와 같습니다!

files = {
            f"imageFiles{[0]}":("image1.JPG",open(r"image1주소\image1.jpg","rb"),'image/jpeg'),
            f"imageFiles{[1]}":("image2.JPG",open(r"image2주소\image2.jpg","rb"),'image/jpeg')
        }

이렇게 여러 건의 이미지를 requests.post를 이용해 보낸다면 200 code를 전달받을 수 있습니다 ㅎㅎ

res = requests.post(url,headers=headers,files=files)

잘 아시는 분들에겐 간단하지만 처음 겪어서 엄청난 시간을 들였네요 ㅎㅎ 부디 이 글을 보시는 분들은 바로 해결하시길 바랍니다 ㅎㅎ

 

글의 내용이 도움이 되셨다면 좋아요 부탁드려요 ㅎㅎ

감사합니다!

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함