在 Feign 上配置代理路由规划器
\n\n我需要知道如何使用 Spring Boot REST 客户端在代理服务器后面发出请求。我可以使用 apache commons 对于 REST 请求进行此配置,如下所示:
\n\n执行POST的方法:
\n\nMap <String, Object> map = new TreeMap <String, Object> ();\n\nDynamicProxyRoutePlanner routePlanner = getProxy (param);\n\nCloseableHttpClient closeableHttpClient = HttpClients.custom (). SetRoutePlanner (routePlanner) .build ();\nRun Code Online (Sandbox Code Playgroud)\n\n获取代理方法:
\n\nprivate DynamicProxyRoutePlanner getProxy (Map <Integer, Object> param) {\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0HttpHost proxy = new HttpHost ((String) param.get (PROXY), (Integer) param.get (PROXY_PORT));\n\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0DynamicProxyRoutePlanner routePlanner = new DynamicProxyRoutePlanner (proxy);\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0return routePlanner;\n}\nRun Code Online (Sandbox Code Playgroud)\n\nDynamicProxyRoutePlanner 类:
\n\npublic class DynamicProxyRoutePlanner implements HttpRoutePlanner {\n\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0private DefaultProxyRoutePlanner defaultProxyRoutePlanner = null;\n\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0public …Run Code Online (Sandbox Code Playgroud) 我们已经在 Playstore 中发布了一个发行版本,并且运行得很好。但现在突然间,当我们尝试再次构建并运行代码时,因为我们想要添加新功能。它将不再与我们的后端通信。
所以我使用错误作为关键字在网络上进行搜索,发现需要 INTERNET PERMISSION 作为 100% 结果和答案,我们已经有了,但根本没有帮助。是的,我们在调试和实时清单中都有它。
服务器已启动,我们可以在浏览器中访问它,邮递员也可以使用 dig 命令

所以我在网上搜索了更多的东西但无济于事,发现了因为代理问题我尝试了客户端和服务器端。我们没有代理
我们只使用简单的请求,如下所示:
static Future getDriver(String phone){
var url = baseUrl + "/mobile/driverPhone";
return http.post(url,body: {
"phone" : phone
});
}
Run Code Online (Sandbox Code Playgroud)
还有一些建议说使用 DIO,但在我放弃这个 http 插件之前我想先知道原因。有好心人可以解释一下并帮助我解决这个问题吗?
我是 Ubuntu 新手,但我有一份使用 docker 安装Wiki.JS 的工作。它可以工作,服务器正在运行,但由于某种原因它无法访问 GraphQL API。
我遇到了以下问题:
服务器:
2020-06-14T11:43:53.980Z [MASTER] 错误:从图形端点获取最新更新:[ FAILED ]
2020-06-14T11:43:53.980Z [MASTER] 错误:请求https://graph.requarks.io失败,原因:连接 ETIMEDOUT 104.26.14.122:443
2020-06-14T11:43:56.028Z [MASTER]错误:将区域设置与图形端点同步:[失败]
2020-06-14T11:43:56.028Z [MASTER] 错误:请求https://graph.requarks.io失败,原因:连接 ETIMEDOUT 104.26.15.122:443
客户:
错误:GraphQL 错误:区域设置或命名空间无效
堆栈跟踪:
n@http://server.mydomain.test/_assets/js/app.js?1591384357:2:125092
["./node_modules/apollo-client/bundle.umd.js"]/i/k</e.prototype.queryListenerForObserver/<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:146832
["./node_modules/apollo-client/bundle.umd.js"]/i/k</e.prototype.broadcastQueries/</<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:153007
["./node_modules/apollo-client/bundle.umd.js"]/i/k</e.prototype.broadcastQueries/<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:152971
["./node_modules/apollo-client/bundle.umd.js"]/i/k</e.prototype.broadcastQueries@http://server.mydomain.test/_assets/js/app.js?1591384357:2:152920
["./node_modules/apollo-client/bundle.umd.js"]/i/k</e.prototype.fetchRequest/</b<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:154884
["./node_modules/zen-observable/lib/Observable.js"]/j</<.value/</<.next@http://server.mydomain.test/_assets/js/app.js?1591384357:333:17099
b@http://server.mydomain.test/_assets/js/app.js?1591384357:333:14921
y@http://server.mydomain.test/_assets/js/app.js?1591384357:333:15429
["./node_modules/zen-observable/lib/Observable.js"]/w</<.value@http://server.mydomain.test/_assets/js/app.js?1591384357:333:15982
w/</n<.next/<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:140468
w/</n<.next@http://server.mydomain.test/_assets/js/app.js?1591384357:2:140430
b@http://server.mydomain.test/_assets/js/app.js?1591384357:333:14921
y@http://server.mydomain.test/_assets/js/app.js?1591384357:333:15429
["./node_modules/zen-observable/lib/Observable.js"]/w</<.value@http://server.mydomain.test/_assets/js/app.js?1591384357:333:15982
o/</</r<.next@http://server.mydomain.test/_assets/js/app.js?1591384357:2:169810
b@http://server.mydomain.test/_assets/js/app.js?1591384357:333:14921
y@http://server.mydomain.test/_assets/js/app.js?1591384357:333:15429
["./node_modules/zen-observable/lib/Observable.js"]/w</<.value@http://server.mydomain.test/_assets/js/app.js?1591384357:333:15982
["./node_modules/apollo-link-batch/lib/batching.js"]/o</e.prototype.consumeQueue/<.next/</<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:168733
["./node_modules/apollo-link-batch/lib/batching.js"]/o</e.prototype.consumeQueue/<.next/<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:168700
["./node_modules/apollo-link-batch/lib/batching.js"]/o</e.prototype.consumeQueue/<.next@http://server.mydomain.test/_assets/js/app.js?1591384357:2:168669
b@http://server.mydomain.test/_assets/js/app.js?1591384357:333:14921
y@http://server.mydomain.test/_assets/js/app.js?1591384357:333:15429
["./node_modules/zen-observable/lib/Observable.js"]/w</<.value@http://server.mydomain.test/_assets/js/app.js?1591384357:333:15982
t/n.batcher<.batchHandler/</<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:165472
["./node_modules/core-js/modules/es.promise.js"]/J/<@http://server.mydomain.test/_assets/js/app.js?1591384357:2:450433
["./node_modules/core-js/internals/microtask.js"]/i@http://server.mydomain.test/_assets/js/app.js?1591384357:2:412213
Run Code Online (Sandbox Code Playgroud)
请记住,我之前已经在 Windows 上测试过它,而我的同事则在 Linux 上测试过它。只要虚拟机没有代理,两者都可以工作。我尝试为机器设置代理并设置环境变量,但它似乎仍然不起作用。
我怎样才能解决这个问题?
在我正在开发的单页应用程序中,我使用 Vite,在我的vite.config.ts文件中我有以下代理:
proxy: {
'/v1': {
target: 'https://127.0.0.1:8080',
changeOrigin: true,
secure: false
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法根据是否在生产环境中来改变这个目标?就像是:
proxy: {
'/v1': {
target: isDev ? 'https://127.0.0.1:8080' : 'https://api.example.com',
changeOrigin: isDev,
secure: !isDev
}
}
Run Code Online (Sandbox Code Playgroud)
也就是说,在我的本地环境中,我想针对本地服务器进行开发,这样我的 fetch API 调用就会fetch("/v1/get-posts")被转发到https://127.0.0.1:8080/v1/get-posts,但在我的生产构建(我通过vite build)中创建,它们将被转发到:https://api.example.com/v1/get-posts
这可以做到吗?如果可以,如何做到?
我正在写使用集成测试nightwatch.js中Node.js的应用.对于特定的测试用例,我希望通过a连接nightwatch proxy.这样做的正确方法是什么?我从官方文档或Google Group中找不到任何内容.
该Selenium文档建议所描述的设置它的实例的webdriver 这里.我不知道如何通过守夜人这样做.
我只是调试了一些客户遇到的错误,现在我偶然发现了一个奇怪的行为:根据charles代理,请求失败("远程服务器在发送响应头之前关闭了连接")但我的成功块被调用了.
这是一个已知的行为/问题吗?
我有一个使用Visual Studio 2015 IDE开发的Cordova应用程序.为了管理库和依赖项,我尝试使用NuGet.但看起来,NuGet无法管理客户端脚本,即CSS.所以我探索了BOWER.我使用命令安装了bower npm installl -g bower,现在我可以访问所有Bower命令.
当我尝试添加像jQuery和jQuery Mobile这样的依赖项时,它会尝试获取并失败.它给出的错误是,
PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\git
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\Bower.cmd" install --force-latest
bower retry Request to https://bower.herokuapp.com/packages/jquery-mobile failed with ECONNRESET, retrying in 1.5s
bower retry Request to https://bower.herokuapp.com/packages/jQuery failed with ECONNRESET, retrying in 1.4s
bower retry Request to https://bower.herokuapp.com/packages/jQuery failed with ECONNRESET, retrying in 3.0s
bower retry Request to https://bower.herokuapp.com/packages/jquery-mobile failed with ECONNRESET, retrying in 3.1s
bower retry Request …Run Code Online (Sandbox Code Playgroud) 我正在尝试自动化角度4应用程序。(量角器,黄瓜,打字稿)。坚持模拟HTTP请求。
找到几种方法:
1)httpBackend 2)http-backend-proxy
但是他们所有人都在谈论AngularJs的应用。根据我的理解,他们已经使用ngMockE2E实现了该功能,而我在angular2 + api doc中找不到。
我也试着跟随这个,没有运气。
谁能在我的量角器项目中帮助我在哪里引用以模拟HTTP调用(GET,POST,PUT等)。
提前致谢。
@Ram Pasala,@ vict:您有任何评论!
我正在尝试使用此配置设置Nginx。要访问backend.mygreat.server.com,我必须通过我的公司代理,即myproxy.server.com:80。
因此,我在/ etc / environment中添加了它
https_proxy=myproxy.server.com:80
Run Code Online (Sandbox Code Playgroud)
但是,nginx无法访问https://backend.mygreat.server.com:443。我在nginx日志中看到504作为HTTP状态。
我可以使用wget或curl来加载页面(通过公司代理进行)
server {
listen 443;
server_name mygreat.server.com;
ssl on;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!SEED:!DSS:!CAMELLIA;
ssl_certificate /etc/nginx/ssl/mygreat.server.com.pem;
ssl_certificate_key /etc/nginx/ssl/mygreat.server.com.key;
access_log /var/log/nginx/access.ssl.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host-Real-IP $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Pcol http;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirects;
proxy_pass https://backend.mygreat.server.com:443;
}
location @handle_redirects {
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏。
谢谢
更新:
这是来自Nginx的示例错误日志
2017/10/18 06:55:51 [warn] 34604#34604: *1 upstream server temporarily disabled …Run Code Online (Sandbox Code Playgroud) 我已将Maven项目导入到Eclipse版本:2018-09(4.9.0)中,但pom文件中出现此错误。我在另一台计算机上已经有相同的项目,并且工作正常。该项目是springBoot 2.0.6.RELEASE
Project build error: Non-resolvable parent POM for es.teatreDeGuerrila:teatreDeGuerrilaCloudApp:1.0.0-SNAPSHOT: Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:2.0.6.RELEASE from
https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error:
Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.0.6.RELEASE from/to central (https://repo.maven.apache.org/maven2): connect timed out and
'parent.relativePath' points at no local POM
Run Code Online (Sandbox Code Playgroud)
而且我在类中有很多编译错误,例如
The import org.springframework cannot be resolved
Run Code Online (Sandbox Code Playgroud)
从命令行使用mvn install -Dmaven.test.skip=true,一切正常。
并且我已经在Eclipse中将其作为Manual在Proxy中进行了设置,与文件中的设置相同 ../maven/conf/settings.xml
<proxy>
<id>httpproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.teatre.guerrila.int</host>
<port>8080</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> …Run Code Online (Sandbox Code Playgroud) http-proxy ×10
proxy ×3
node.js ×2
typescript ×2
afnetworking ×1
angular ×1
bower ×1
cloudflare ×1
configure ×1
dart ×1
devops ×1
docker ×1
eclipse ×1
feign ×1
flutter ×1
httpbackend ×1
ios ×1
linux ×1
maven ×1
nginx ×1
protractor ×1
proxypass ×1
rest ×1
spring-boot ×1
vite ×1
wiki.js ×1