发送/接收来自MS Word插件的http请求/响应

本文关键字:插件 http 请求 响应 Word MS 发送 | 更新日期: 2023-09-27 18:06:04

我正在尝试为MS Word编写一个插件。是否有可能为MS Word插件监听特定端口和发送/接收http请求/响应?在Word和Word之外运行的应用程序之间会有防火墙吗?

发送/接收来自MS Word插件的http请求/响应

Office插件可以发出HTTP请求而不会触发防火墙问题(使用Windows防火墙的默认配置),但如果不触发防火墙问题则无法侦听。

如果您从word内部向word外部的服务发出请求,该服务在侦听端口时可能会遇到防火墙问题。

Windows防火墙,默认情况下阻止传入请求。Windows防火墙包含在所有版本的Windows XP SP2或更高版本中。

请参阅MSDN获取更多信息。

另外

Function GetRateCBR(dDate As Date) As String
Dim sUrlRequest, intTry As Integer, _
    strResponse As String
Dim oXMLHTTP As Object
Dim oResponse As Object
Set oResponse = CreateObject("MSXML2.DOMDocument")
'Build URL for request
sUrlRequest = _
    "http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=" _
    & Format(dDate, "dd.mm.yyyy") _
    & "&date_req2=" & Format(dDate, "dd.mm.yyyy") _
    & "&VAL_NM_RQ=" & "R01235"
'Try to get a response, 10 tries
intTry = 1
Do Until intTry > 10
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    oXMLHTTP.Open "GET", sUrlRequest, False
    oXMLHTTP.send
    If oXMLHTTP.Status = 200 Then
        If oResponse.loadXML(oXMLHTTP.responseText) Then _
            Exit Do
    End If
    If Not oXMLHTTP Is Nothing Then oXMLHTTP.abort: _
        Set oXMLHTTP = Nothing
    DoEvents
    intTry = intTry + 1
Loop
If Not oXMLHTTP Is Nothing Then oXMLHTTP.abort: _
    Set oXMLHTTP = Nothing
If intTry <= 10 Then
     GetRateCBR = Mid$(oResponse.Text, 3)
End If
If Not oResponse Is Nothing Then oResponse.abort: _
    Set oResponse = Nothing
End Function

通过Access Blog的例子