如何将OpenAPI生成器与公司代理一起使用?

时间:2019-08-07 14:24:16

标签: c# proxy openapi-generator

我正在尝试使用OpenAPI generator基于openapi: "3.0.2" json配置自动生成C#客户端代码:

openapi-generator generate -i https://test.com/docs/swagger/openapi.json -g csharp-netcore -c open-api-config.json -o DataLakeOpenApiRestClient.cs

此操作失败,并显示以下错误:

  

[main]错误io.swagger.v3.parser.util.RemoteUrl-无法读取   java.net.ConnectException:连接超时:connect           在java.net.DualStackPlainSocketImpl.connect0(本机方法)           在java.net.DualStackPlainSocketImpl.socketConnect(未知来源)           在java.net.AbstractPlainSocketImpl.doConnect(未知来源)           在java.net.AbstractPlainSocketImpl.connectToAddress(未知来源)           在java.net.AbstractPlainSocketImpl.connect(未知源)           在java.net.PlainSocketImpl.connect(未知源)           在java.net.SocksSocketImpl.connect(未知源)           在java.net.Socket.connect(未知源)           在sun.security.ssl.SSLSocketImpl.connect(未知来源)           在sun.security.ssl.BaseSSLSocketImpl.connect(未知来源)           在sun.net.NetworkClient.doConnect(未知来源)           在sun.net.www.http.HttpClient.openServer(未知来源)           在sun.net.www.http.HttpClient.openServer(未知来源)           在sun.net.www.protocol.https.HttpsClient。(来源不明)           在sun.net.www.protocol.https.HttpsClient.New(未知来源)           在sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(未知   资源)           在sun.net.www.protocol.http.HttpURLConnection.plainConnect0(未知   资源)           在sun.net.www.protocol.http.HttpURLConnection.plainConnect(未知   资源)           在sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(未知   资源)           在sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(未知   资源)           在io.swagger.v3.parser.util.RemoteUrl.urlToString(RemoteUrl.java:147)           在io.swagger.v3.parser.OpenAPIV3Parser.readWithInfo(OpenAPIV3Parser.java:123)           在io.swagger.v3.parser.OpenAPIV3Parser.readLocation(OpenAPIV3Parser.java:45)           在io.swagger.parser.OpenAPIParser.readLocation(OpenAPIParser.java:16)           在org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:586)           在org.openapitools.codegen.cmd.Generate.run(Generate.java:395)           在org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:60)

但是,如果我下载json文件并使用本地文件输入运行,则效果很好:

openapi-generator generate -i open-api-offline-file.json -g csharp-netcore -c open-api-config.json -o DataLakeOpenApiRestClient.cs

我已经在没有公司代理的计算机上对此进行了测试,并且可以正常工作,所以我的主要怀疑对象是代理。

我已经设置了HTTP_PROXY和`HTTPS_PROXY,但未使用它们。

问题:如何将OpenAPI生成器与公司代理一起使用?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用-D设置网络属性:https://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html

例如

openapi-generator generate -i open-api-offline-file.json -g csharp-netcore -c open-api-config.json -o DataLakeOpenApiRestClient.cs -Dhttps.proxyHost=internal-proxy.mycompany.com -Dhttps.proxyPort=8080