我正在尝试为 MS Word 编写加载项。是否可以让 MS Word 加载项侦听特定端口并发送/接收 http 请求/响应?MS Word 和在 Word 之外运行的应用程序之间是否存在防火墙?
问问题
589 次
1 回答
1
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
通过访问博客的示例
于 2013-03-26T20:16:40.630 回答