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: xml
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