0

我目前已经习惯了 Visual Basic,并且正在尝试构建一个应用程序,我们的操作员可以将快速搜索提交到我们的系统之一。- 我四处寻找这个,我找不到很多信息

以下是我们希望以某种方式实现的目标的快速概述

1. VB 2010 App (2 x Text Boxes + Button) 
2. PHP Script (If query = bob & jones <<=
3. Curl PHP Request to another PHP Form
4. Returns to Original PHP Script <<= 
5. Somehow returns information back to .net application that is waiting

我是一名 PHP 程序员,而不是一名 .net 开发人员,因此 curl 和 php 脚本大多是完整的,它只是 .net 编码

为了让我们开始,我们使用了以下代码:

    Dim webStream As Stream

    Dim webResponse = ""

    Dim req As HttpWebRequest

    Dim res As HttpWebResponse

    ' API Address ''

    req = WebRequest.Create("xxxxxxxxx")



    req.Method = "GET" ' Method of sending HTTP Request(GET/POST)

    res = req.GetResponse() ' Send Request



    webStream = res.GetResponseStream() ' Get Response

    Dim webStreamReader As New StreamReader(webStream)

    ' READ Response in one Variable

    While webStreamReader.Peek >= 0

        webResponse = webStreamReader.ReadToEnd()

    End While
    MsgBox(webResponse)

它在一个标准下运行良好,因为它以消息框的形式将信息带回给我们,尽管我们希望它填充几个文本框(甚至不确定这是否可能)

但主要问题是它正在检索网站的源代码,而不仅仅是网站文本方面的信息

谢谢

4

1 回答 1

0

您似乎已经完成了这一部分。你有标记,只要深入研究它。

这是上面编写代码的另一种方法。

Dim MyURL as string = "xxxxxxx"
Dim MyRequest As WebRequest = WebRequest.create(MyURL)
MyRequest.Headers.Add("myCustom","true") 'PHP Web Server @ xxxxxxx will see this as $_SERVER['http_myCustom'] - true
MyRequest.ContentType = "text/html"
MyRequest.Method = "GET"

Dim MyResponse As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)

If MyResponse.StatusCode = HttpStatusCode.OK Then
    Dim SR As New StreamReader(MyRequest.GetResponseStream())
    MyRequest.Close()
    Dim webResponse As String = SR.ReadToEnd()
    SR.Close()

    'At this point, the source of the page is in webResponse

Else
    MyRequest.Close()
    'Error in connection to remote/host server
End If

我将标头添加到请求中,以表明您可以简单地检查外部站点上是否存在此标头和/或引荐来源网址,以不同方式处理该站点的响应。也就是说,如果您不想要解析 webRequest 中的整个源,而不是考虑不从外部站点发送整个文档。

因为,我假设您只是对获取由外部服务器解析为 text/html 的搜索结果感兴趣。

于 2012-07-22T20:19:18.570 回答