VB做客户端要调用PHP WEB服务器断的数据,如何做接口,请高手给点思路。
一个PHP+MYSQL旅游平台+用VB做的IM即时通讯的客户端,就类似与淘宝跟旺旺的结构。客户端查找好友的时候,需要从WEB服务器上返回会员列表,我肯定不能用VB直接读WEB数据库,感觉应该在WEB方做个VB的接口,但是没做过,一点思路都没有,请各位高手指点一下,最好有详细的步骤。听说接口可以用SOAP协议,但是没查到资料。希望各位帮助啊!

解决方案 »

  1.   

    VB用XML可以访问到WEB页面的内容,无论你服务器端脚本是什么的都无所谓,要取的只是页返回的文本或数据内容而已。
    比如你的PHP在你WEB站点的根目录的Default.php,内容是这样的:<?php
       @echo 'admin|12345678|管理员|'.date('Y-m-d h:i:s');
    ?>你的VB方面可以这样读取信息:Private Sub Command1_Click()
       '定义变量
       Dim XMLObject As Object
       Dim WebURL As String
       Dim SendStr As String
       Dim HTMLValue As String
       Dim StrArray() As String
       
       WebURL = "http://127.0.0.1/Default.php"
       Set XMLObject = CreateObject("Microsoft.XMLHTTP")  '创建XML对象
       XMLObject.open "GET", WebURL, False '设置打开方式和URL地址
       XMLObject.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"  '添加HTTP头信息
       XMLObject.Send SendStr              '提交数据(虽然是空字符,但POST方式就有用了),注意这里才真正开始与远程通讯
       If XMLObject.Status = 200 Then      '完成整个通讯后判断连接结果是否正常
          HTMLValue = StrConv(XMLObject.ResponseBody, vbUnicode) '将对象的字节流信息转换成Unicode字符串放到到HTMLValue变量里
          StrArray = Split(HTMLValue, "|") '根据"|"符号将文本分割,并将分割结果返回到StrArray这个字符串数组中
          If UBound(StrArray) = 3 Then    '校验数据格式是否正确
             MsgBox "完成处理:" & vbCrLf & _
                    "账号:" & StrArray(0) & vbCrLf & _
                    "密码:" & StrArray(1) & vbCrLf & _
                    "昵称:" & StrArray(2) & vbCrLf & _
                    "时间:" & StrArray(3), 64, "完成"
          Else
             MsgBox "数据格式不正确,以下是数据内容:" & vbCrLf & HTMLValue
          End If
       Else
          MsgBox "读取网页时发生错误:" & XMLObject.Status
       End If
       Set XMLObject = Nothing
    End Sub
    看了这个例子你应该了解一点了,如果想了解更多的XML使用,可以到我的资源或博客看看范例。
    博客:http://blog.csdn.net/SupermanKing
    资源:http://supermanking.download.csdn.net/http://blog.csdn.net/SupermanKing/archive/2008/10/16/3082860.aspx
    http://download.csdn.net/source/639058
    http://blog.csdn.net/SupermanKing/archive/2008/10/16/3082913.aspx
      

  2.   

    打错了<?php
       echo 'admin|12345678|管理员|'.date('Y-m-d h:i:s');
    ?>
      

  3.   

    非常感谢SupermanKing的帮助!结贴!