Haste makes waste

ProxyServer构建与UiPath中的连接测试

Posted on By lijun

最近在某客户的RPA项目实施中,需要在客户的内部网络中,使用UiPath调用某AI OCR的Web API,但是客户的内部网络是「ProxyServerのパスポート付き認証」,为了对应ProxyServer,在本机上构建了一套类似的环境。

1. 环境结构

image

  • Client PC

客户端PC,类似于客户内部网络中员工所用的机器,该机器的IE中的设定了ProxyServer的IP和Port之后,就可以通过ProxyServer连接到Internet了。

  • Proxy Server

在客户端PC上创建了一个虚拟机,在该虚拟机上安装了一个ProxyServer的软件之后,用该虚拟机充当ProxyServer的角色。

2. Proxy Server设定

安装工具 CCProxy8.0后,按照下面的方式进行设定:

  • Port関連設定

image

  • 制限関連設定

image

  • WindowsOSのFirewall設定

image

3. Client PC设定

打开IE的Internet Option:

image

如下面的画面中,设定ProxyServer的IP和设定的Port:

image

4. 运行确认

  • 打开Firefox时,会弹出这样一个画面,要求输入ProxyServer的用户名和密码:

image

  • 正确输入后,就可以访问自定网站了,比如访问百度,可以显示出百度网页

image

另外,在Proxy Server中,也可以看到这个访问履历:

image

上面的显示 via 10.0.2.15,这是proxy server的外网IP:

image

通过上述方式可以确认Proxy Server设定成功,也已经开始运行了。

5. 补足:创建一个WebSever

有时需要自己创建另一个WebServer,可以在Proxy Server上创建一个,环境结构如下:

image

在Client PC上访问http://192.168.56.101:8000/,可以显示:

image

该WebServer通过Python创建,只需要几行代码,非常方便:

import http.server
import socketserver

PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

然后cmd中启动即可:

C:\该py所在目录\ > py pythonServerTester.py

6. 补足:在UiPath中进行ProxServer认证

使用Vb.net Code,在进行WebAPI访问的时候,设定WebProxy:

Dim client As New RestSharp.RestClient(in_URL.TrimEnd("/"c, " "c, " "c) + "/ConsoleWeb/api/v1/reading/units")
Dim myProxy As New System.Net.WebProxy(in_ProxyURL)
Dim myCredential As New System.Net.NetworkCredential(in_ProxyUserName, in_ProxyPassword)

client.Proxy = myProxy
client.Proxy.Credentials = myCredential

Dim request As New RestSharp.RestRequest(RestSharp.Method.GET)
request.AddHeader("X-ConsoleWeb-ApiKey", in_ApiKey)
request.AddParameter("readingUnitId", in_UnitID.ToString)

Dim response As RestSharp.IRestResponse = client.Execute(request)
out_Response = response.Contentt