Undserver ist ein HTTP- und Reverse -Proxy -Server.
Webserver und Web -Framework der Android -Plattform. Es bietet Anmerkungen wie SpringMVC, und wenn Sie mit SpringMVC vertraut sind, können Sie es sehr schnell beherrschen.
Bereitstellen eines Webservers:
Server server = AndServer . webServer ( context )
. port ( 8080 )
. timeout ( 10 , TimeUnit . SECONDS )
. build ();
// startup the server.
server . startup ();
...
// shutdown the server.
server . shutdown (); Es verfügt auch über einige Funktionen wie inetAddress(InetAddress) , serverSocketFactory(ServerSocketFactory) und sslContext(SSLContext) , je nachdem, was Sie erreichen möchten.
@ RestController
@ RequestMapping ( path = "/user" )
public class UserController {
@ PostMapping ( "/login" )
public String login ( @ RequestParam ( "account" ) String account ,
@ RequestParam ( "password" ) String password ) {
...
return "Successful." ;
}
@ GetMapping ( path = "/{userId}" )
public User info ( @ PathVariable ( "userId" ) String userId ,
@ QueryParam ( "fields" ) String fields ) {
User user = findUserById ( userId , fields );
...
return user ;
}
@ PutMapping ( path = "/{userId}" )
public void modify ( @ PathVariable ( "userId" ) String userId
@ RequestParam ( "age" ) int age ) {
...
}
}Der obige Code generiert die folgenden zwei HTTP -APIs:
POST http://.../user/login
GET http://.../user/uid_001?fields=id,name,age
PUT http://.../user/uid_001
Nehmen Sie Verbindungsinformationen mit dem Client ab:
@ GetMapping ( path = "/connection" )
void getConnection ( HttpRequest request , ...) {
request . getLocalAddr (); // HostAddress
request . getLocalName (); // HostName
request . getLocalPort (); // server's port
request . getRemoteAddr (); // HostAddress
request . getRemoteHost (); // Especially HostName, second HostAddress
request . getRemotePort (); // client's port
...
}Für Dokumentation und zusätzliche Informationen finden Sie auf der Website.
Bereiten Sie einen Reverse -Proxy -Server bereit:
Server server = AndServer . proxyServer ()
. addProxy ( "www.example1.com" , "http://192.167.1.11:8080" )
. addProxy ( "example2.com" , "https://192.167.1.12:9090" )
. addProxy ( "55.66.11.11" , "http://www.google.com" )
. addProxy ( "192.168.1.11" , "https://github.com:6666" )
. port ( 80 )
. timeout ( 10 , TimeUnit . SECONDS )
. build ();
// startup the server.
server . startup ();
...
// shutdown the server.
server . shutdown ();Hinweis : Es ist nur ein umgekehrter Proxy und kann nicht um das Ladeausgleich aufmerksam werden.
Fügen Sie das Plugin Ihrem Projekt Build -Skript hinzu:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath ' com.yanzhenjie.andserver:plugin:2.1.12 '
.. .
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
.. . Und dann AndServer serverabhängig zu Ihrem Modul hinzufügen:
apply plugin : ' com.yanzhenjie.andserver '
.. .
dependencies {
implementation ' com.yanzhenjie.andserver:api:2.1.12 '
annotationProcessor ' com.yanzhenjie.andserver:processor:2.1.12 '
.. .
} Wenn Sie Kotlin verwenden, ersetzen Sie annotationProcessor durch kapt .
Vor der Einreichung von Pull -Anfragen müssen die Mitwirkenden die Vereinbarung einhalten.
Copyright Zhenjie Yan
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.