Msxml2.XMLHTTP ile başka bir adresden bilgi alındığında binary read ile bilgi alma

Yazan : Kerem ANARAT ,02-07-2009 (Asp Script)

Etiketler:

Farklı bir web sitesinine Msxml2.XMLHTTP metodu ile bağlanıp bilgi aldığınızda gelen bilgi içerisinde türkçe karakterler ? (soru işareti) şeklinde görüne bilir. Binary olarak bilgi alınıp bu bilginin string dönüşümünün yapılması gerekir.

Farklı bir web sitesinine Msxml2.XMLHTTP metodu ile bağlanıp bilgi aldığınızda gelen bilgi içerisinde türkçe karakterler ? (soru işareti) şeklinde görüne bilir. Binary olarak bilgi alınıp bu bilginin string dönüşümünün yapılması gerekir. Bunun için aşağıdaki funksiyonu kullana bilirisiniz.

Private  Function BinaryToString(Binary)
 Dim  cl1, cl2, cl3, pl1, pl2, pl3
 Dim  L
 cl1 = 1
 cl2 = 1
 cl3 = 1
 L = LenB(Binary)

 Do  While cl1<=L
  pl3 = pl3 &  Chr(AscB(MidB(Binary,cl1,1)))
  cl1 = cl1 + 1
  cl3 = cl3 + 1
  If  cl3>300  Then
   pl2 = pl2 & pl3
   pl3 = “”
   cl3 = 1
   cl2 = cl2 + 1
   If  cl2>200  Then
    pl1 = pl1 & pl2
    pl2 = “”
    cl2 = 1
   End  If
  End  If
 Loop

 BinaryToString = pl1 & pl2 & pl3

End  Function

Response.Buffer = False
Response.Charset = “windows-1254
Response.ContentType = “text/html”

Set vPosXML = Server.CreateObject(”Msxml2.XMLHTTP”)

  waybill=”xxxxxxxxxxxxxxxx”
API_URL  = “http://www.ups.com.tr/sorgusonucEC.asp?waybill=”&waybill
  vPosXML.Open “GET”, API_URL ,False
  vPosXML.setRequestHeader “Content-type”, “text/xml; charset=windows-1254″
  vPosXML.Send “”
  

If vPosXML.status=200 Then
    GelenBilgi = BinaryToString(vPosXML.ResponseBody)
 ‘ResponseText yerine ResponseBody kullanılmış  
Else
     GelenBilgi = “Bağlantı hatası”
 End If

response.write GelenBilgi

Leave a Reply