ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[¤À¨É] ¨Ï¥Î XMLHTTP + ADODB.Stream ¬d¸ß«O¤áªÑÅv¤À´²ªí

¥»©«³Ì«á¥Ñ stillfish00 ©ó 2015-11-12 11:00 ½s¿è

¦^´_ 1# ­ã´£³¡ªL
¦Û¤v¤]¹ïºô­¶Â^¨ú¦Û¦æºN¯Á¤@¬q®É¶¡¡A¥H¤U¬O­Ó¤H¨£¸Ñ´£¨Ñ°Ñ¦Ò:
­º¥ý¡A§Ú­Ì­n»P(ºô­¶)¦øªA¾¹·¾³q¡A¬O³z¹L¹ïÂsÄý¾¹ªº¾Þ§@(¨Ò¦p­«·s¾ã²z©Îºô­¶¤Wªº°e¥X«ö¶s)
¨Óµo¥X"½Ð¨D"(request)«Ê¥]¡A¸g¥Ñºô¸ô¶Çµ¹¦øªA¾¹¡A
¦øªA¾¹¦A¸g¥Ñºô¸ôªð¦^"ÅTÀ³"(response)µ¹ÂsÄý¾¹¡C

³o­Ó"½Ð¨D"«Ê¥]¤¤¥]§t¤F url , method , status , header , body µ¥µ¥
GET©MPOST´N¬O½Ð¨Dªº¤èªk(method)¤¤³Ì±`¨£ªº¨âºØ¡A
³Ì¤j¤£¦Pªº¦a¤è¦b©ó¡G
GET¬Oª½±µ§â­n¶Ç»¼ªº°Ñ¼Æªþ¥[¦burl¦r¦ê«á¤è
POST¬O§â­n¶Ç»¼ªº°Ñ¼Æ©ñ¦bbody¡C

°²³]
    sURL = "http://www.tdcc.com.tw/smWeb/QryStock.jsp"
    sArg = "SCA_DATE=20151106&SqlMethod=StockNo&StockNo=1101&StockName=&sub=¬d¸ß"
    sEncodeArg = UrlEncode(sArg)     
    'UrlEncode : ¦Û­qFunction¡A
    '½s½X§¹ sEncodeArg = "SCA_DATE=20151106&SqlMethod=StockNo&StockNo=1101&StockName=&sub=%ACd%B8%DF"

GETªþ¥[ªº¤å¦r­n¸g¹LUrl Encode
POST©ñ¨ìbodyªº¤º®e¥i¿ï¾Ü¤£¦P½s½X¤è¦¡¡A¦ý­n¦bheader¤¤»¡©ú
©Ò¥HXML³q±`·|³o¼Ë¼g:
  1. 'GET
  2. .Open "GET" , sURL & "?" & sEncodeArg
  3. .send
½Æ»s¥N½X
  1. 'POST
  2. .Open "POST" , sURL
  3. .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  4. .setRequestHeader "Content-Length", Len(sEncodeArg)
  5. .send (sEncodeArg)
½Æ»s¥N½X
1. ª©¥D´£¨ìªº¨ú¨ì¸ê®Æ¡AÀ³¬O½w¦s(cacheªºÃö«Y)
    ¥i¦Ò¼{¤W­zGETªºsend«e¥[¤W
        .setRequestHeader "Pragma", "no-cache"
    ©Î
        .setRequestHeader "Cache-Control", "no-cache"
    §i¶Dºô¸ô¤¤ªº¸`ÂI(¦pproxy), ¤£­n¥Î§A¦Û¤vªºcache¸ê®Æªð¦^µ¹§Ú
    URL¥[¶Ã¼Æ¤]¬OÃþ¦ü¹D²z¡A¦]¬°URLÅܤF¤£®e©ö¦³¬Û¦PURLªºcache¸ê®Æ
    (¦ý¶Ã¼Æ¨ì¦P¤@­Ó­ÈÁÙ¬O¦³¾÷·|¨ú¨ìªº)

2. URL Encode  Function¡Aºô¸ô¤W§ä¨ìªº¤@¯ëÀ³¸Ó¦h¬O for "utf-8"ªº¡A
µLªk§â "sub=¬d¸ß" Âন "sub=%ACd%B8%DF"  (©Ò¥H·íªì¦³¤H°Ýchrome¬°¦óµLªkdecode)
http://www.mytju.com/classCode/tools/urlencode_big5.asp
³oºô¯¸¦³½u¤Wªº¡A¥i¥Hª¾¹Dfor "big5" url encode ªºµ²ªG
¦ý¤£ª¾¹D½s½XÅÞ¿è¡A¤£¦n°µ¦¨¦Û©wªº function
1

µû¤À¤H¼Æ

ªí¹F¤£²M¡BÃD·N¤£©ú½T¡B¨SªþÀɮ׮榡¡B¨S¦³°Q½×°ÝÃDªººA«×~~~~~~¥H¤W·R²ö¯à§U¡C

TOP

¥»©«³Ì«á¥Ñ stillfish00 ©ó 2015-11-13 18:25 ½s¿è

¦^´_ 3# stillfish00
«÷«÷´ê´ê±À¾É¥X¨Óªº½s½XÅÞ¿è¡A­Y¦³µo²{¿ù»~½Ð«üÂI¤U¡AÁÂÁ¡C
  1. Function UrlEncode_BIG5(s As String) As String
  2.     Dim c As Integer
  3.     Dim hiByte As Byte, loByte As Byte
  4.     Dim ar
  5.    
  6.     For i = 1 To Len(s)
  7.         c = Asc(Mid(s, i, 1))
  8.         hiByte = (c And &HFF00&) / &H100
  9.         loByte = c And &HFF&
  10.         If hiByte = 0 Then ar = Array(loByte) Else ar = Array(hiByte, loByte)
  11.         
  12.         For Each x In ar
  13.             If (x >= &H30 And x <= &H39) Or _
  14.                 (x >= &H41 And x <= &H5A) Or _
  15.                 (x >= &H61 And x <= &H7A) Then
  16.                 UrlEncode_BIG5 = UrlEncode_BIG5 & Chr(x)
  17.             Else
  18.                 UrlEncode_BIG5 = UrlEncode_BIG5 & "%" & Hex(x)
  19.             End If
  20.         Next
  21.     Next
  22. End Function
½Æ»s¥N½X
UrlEncode_BIG5("¥xªd") => "%A5x%AAd"
1

µû¤À¤H¼Æ

    • ­ã´£³¡ªL: ¬Ý¨ÓÁö²³æ, ¤£®e©ö§r! ¦¬¤U¤F, ÁÂÁÂ!ª÷¿ú + 5
ªí¹F¤£²M¡BÃD·N¤£©ú½T¡B¨SªþÀɮ׮榡¡B¨S¦³°Q½×°ÝÃDªººA«×~~~~~~¥H¤W·R²ö¯à§U¡C

TOP

        ÀR«ä¦Û¦b : ¥¬¬I¦p¼½ºØ¡A¥HÅw³ß¤ß´þ¼íºØ¤l¡A¤~·|µoªÞ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD