Android利用Andserver搭建服務(wù)器的詳細(xì)教程
效果

需求
在手機(jī)上有一個(gè)功能,但是需要使用電腦控制什么時(shí)候開始這個(gè)功能,然后上網(wǎng)搜索,找到了AndServer可以滿足要求,我只是實(shí)現(xiàn)了簡(jiǎn)單的功能,如果感興趣的話,可以深入的研究一下。
地址如下:https://github.com/yanzhenjie/AndServer
1.步驟引入
implementation 'com.yanzhenjie:andserver:1.0.2'
2.申請(qǐng)權(quán)限
<uses-permission android:name="android.permission.INTERNET" />
3.初始化server
private void initServer() {
AssetManager assetManager = getAssets();
WebSite webSite = new AssetsWebsite(assetManager, "");
AndServer andServer = new AndServer.Build()
.website(webSite)
.timeout(30 * 1000)
.port(1234)
.registerHandler("login", new loginRequest())
.registerHandler("search",new searchRequest())
.listener(mListener)
.build();
server = andServer.createServer();
server.start();
}
4.主要代碼
/**
* 監(jiān)聽事件
*/
private Server.Listener mListener = new Server.Listener() {
@Override
public void onStarted() {
Log.e(TAG, "onStarted: ");
tvTips.setText("服務(wù)啟動(dòng)成功");
}
@Override
public void onStopped() {
Log.e(TAG, "onStopped: ");
}
@Override
public void onError(Exception e) {
Log.e(TAG, "onError: " + e.getMessage());
tvTips.setText("服務(wù)啟動(dòng)失敗:"+e.getMessage());
}
};
public class searchRequest implements RequestHandler{
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "拍照", Toast.LENGTH_SHORT).show();
}
});
StringEntity stringEntity = new StringEntity("拍照", "utf-8");
response.setEntity(stringEntity);
}
}
public class loginRequest implements RequestHandler {
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException {
Map<String, String> params = HttpRequestParser.parse(request);
// Request params.
final String userName = params.get("name");
final String password = params.get("pwd");
//中文需要解碼
final String userName1 = Uri.decode(userName);
final String password1 = Uri.decode(password);
Log.e(TAG, "handle: " + userName);
runOnUiThread(new Runnable() {
@Override
public void run() {
tvUsername.setText(userName1);
tvPwd.setText(password1);
}
});
StringBuilder sb = new StringBuilder();
sb.append("用戶名:" + userName1);
sb.append("\n");
sb.append("密碼:" + password1);
StringEntity stringEntity = new StringEntity(sb.toString(), "utf-8");
response.setEntity(stringEntity);
}
}
總結(jié)
到此這篇關(guān)于Android利用Andserver搭建服務(wù)器的詳細(xì)教程的文章就介紹到這了,更多相關(guān)android 搭建服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android開源組件SlidingMenu側(cè)滑菜單使用介紹
這篇文章主要介紹了Android開源組件SlidingMenu側(cè)滑菜單使用介紹,本文給出了SlidingMenu的項(xiàng)目地址、使用代碼、使用配置、常用的一些屬性設(shè)置中文注解等內(nèi)容,需要的朋友可以參考下2015-01-01
Android開發(fā)筆記之:如何安全中止一個(gè)自定義線程Thread的方法
本篇文章是對(duì)Android中如何安全中止一個(gè)自定義線程Thread的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
官網(wǎng)項(xiàng)目Jetpack?Startup庫學(xué)習(xí)
這篇文章主要為大家介紹了官網(wǎng)項(xiàng)目Jetpack?Startup庫學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Android Studio和Gradle使用不同位置JDK的問題解決
這篇文章主要介紹了Android Studio和Gradle使用不同位置JDK的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Android仿微信錄音功能(錄音后的raw文件轉(zhuǎn)mp3文件)
這篇文章主要介紹了Android中仿微信錄音功能錄音后的raw文件轉(zhuǎn)mp3文件,本文通過實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2019-11-11
Android編程實(shí)現(xiàn)文件瀏覽功能的方法【類似于FileDialog的功能】
這篇文章主要介紹了Android編程實(shí)現(xiàn)文件瀏覽功能的方法,可實(shí)現(xiàn)類似于FileDialog的功能,涉及Android針對(duì)文件與目錄操作的相關(guān)技巧,需要的朋友可以參考下2016-11-11
Android項(xiàng)目實(shí)戰(zhàn)之仿網(wǎng)易頂部導(dǎo)航欄效果
這篇文章主要為大家詳細(xì)介紹了Android項(xiàng)目實(shí)戰(zhàn)之仿網(wǎng)易頂部導(dǎo)航欄效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05

