Retrofit+OkHttp驱动的高校选课APP开发与实践

版权申诉
0 下载量 53 浏览量 更新于2024-06-21 收藏 1.23MB DOCX 举报
随着移动互联网技术的发展,网络选课从传统的网页形式逐渐转向移动端应用,以便用户在任何时间、任何地点进行课程选择。本研究文档聚焦于基于Retrofit+OkHttp技术构建的网络选课APP的设计与实现,针对的是Android平台,主要目标是在智能手机上提供一个便捷、高效的选课体验。 首先,背景部分阐述了在当今智能化环境下,手机APP作为选课平台的必要性和优势,尤其是在校园内,通过优化网络流量,确保学生即使在没有电脑的情况下也能顺利完成选课。作者选择以本校为例,考虑到了实际的网络环境和系统性能需求。 设计方面,文档详细介绍了APP的功能模块划分,包括全校性选课、体育选课和课表查询等模块,主要面向学生用户,而教师管理功能暂未开发。这表明设计时考虑了用户体验和功能区分,以便用户根据需求进行操作。 在技术选型上,作者采用了Android Studio作为开发工具,它提供了丰富的开发环境和调试支持,有利于快速开发和迭代。服务器端则选择MyEclipse作为开发工具,配合MySQL-5.7作为数据库管理系统,确保数据的存储和处理效率。为了验证和调试API接口,Postman被用于模拟客户端请求,这有助于发现并修复潜在的问题。 部署方面,文档建议将服务器部署到阿里云或者本地,同时实现内外网访问限制,确保系统的稳定性和安全性。这显示了对网络架构和性能优化的重视,使得APP能在不同网络环境下正常运行。 最后,关键词部分明确了本文的核心技术和平台:“网络选课APP”、“Android Studio”、“MyEclipse”、“MySQL-5.7”以及“Linux服务器”。这些关键词反映了文章的主要研究内容和技术路径。 总结来说,这篇文档深入探讨了如何利用Retrofit+OkHttp技术构建一个能满足实际需求的网络选课APP,包括软件架构、功能模块、技术栈选择、测试与部署策略等,为类似项目的开发提供了实用的参考。

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.bawei.xuhe, PID: 22989 java.net.UnknownServiceException: CLEARTEXT communication to 10.59.9.18 not permitted by network security policy at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:188) at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226) at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106) at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74) at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:221) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201) at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154) at retrofit2.OkHttpCall.execute(OkHttpCall.java:204) at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:41) at io.reactivex.Observable.subscribe(Observable.java:10179) at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34) at io.reactivex.Observable.subscribe(Observable.java:10179) at io.reactivex.internal.operators.observable.ObservableSubscribeOn$1.run(ObservableSubscribeOn.java:39) at io.reactivex.Scheduler$1.run(Scheduler.java:134) at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:59) at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:51) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764) I/Process: Sending signal. PID: 22989 SIG: 9

2023-06-10 上传