[VBA] WinHTTP로 POST 전송시 데이터를 EUC-KR(CP949)로 전송하기 (WinHTTP, System Default Code Page)
VisualBasic 2014. 11. 11. 11:15Excel VBA에서 WinHTTP 를 이용하여 input:file POST 전송시 기본 문자열은 Unicode(UTF-8)로 됨.
참조: [VBA] Excel 현재 Sheet의 데이터를 웹페이지에 업로드하기
하지만 만약 서버가 EUC-KR(CP949)로 인코딩 된 파일만 받아들일 경우, 보낼 때 데이터를 변경해줘야 함.
아래처럼 Byte 배열을 하나 만들고 원본 문자열을 StrConv를 이용하여 시스템 기본 코드페이지(vbFromUnicode)로 변경해서 전송하면 OK.
Dim PostData As String
' PostData에 전송할 데이터를 넣었다고 가정하고
' 시스템 기본 코드페이지로 변환
Dim PostBody() As Byte
PostBody = StrConv(PostData, vbFromUnicode)
'전송
Set WinHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
WinHTTP.Open "POST", "http://DOMAIN.com/excel_upload.php"
WinHTTP.SetRequestHeader "Content-Type", "multipart/form-data; boundary=----" & BoundaryStr
WinHTTP.Send PostBody
'VisualBasic' 카테고리의 다른 글
[VBS] Windows 사용시 키보드, 마우스에 손 안대고 화면보호기, 절전모드 방지하기 (2) | 2015.02.23 |
---|---|
[VBA] 선택된 rows 번호 가져오기 (0) | 2014.11.04 |
[VBA] Excel 현재 Sheet의 데이터를 웹페이지에 업로드하기 (0) | 2014.11.02 |
[VBA] WinHTTP로 로그인 세션(PHPSESSID) 유지하면서 웹페이지 요청하기 (0) | 2014.11.02 |
[VBA] UrlEncode 함수 (0) | 2014.11.02 |