https://github.com/androidappfactory/android-httpurlconnection
一款封装HttpURLConnection实现的简单的网络请求的事例
https://github.com/androidappfactory/android-httpurlconnection
android-httpurlconnection httpurlconnection
Last synced: 6 months ago
JSON representation
一款封装HttpURLConnection实现的简单的网络请求的事例
- Host: GitHub
- URL: https://github.com/androidappfactory/android-httpurlconnection
- Owner: AndroidAppFactory
- Created: 2016-12-28T06:36:49.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-04-28T07:14:00.000Z (over 2 years ago)
- Last Synced: 2025-03-25T07:36:14.316Z (7 months ago)
- Topics: android-httpurlconnection, httpurlconnection
- Language: Java
- Homepage: http://blog.bihe0832.com/Android-HttpURLConnection.html
- Size: 2.18 MB
- Stars: 25
- Watchers: 1
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Android-HttpURLConnection
## 说明
### **lib-http 后续不再单独在此维护,统一合并到AndroidAppFactory 中继续维护,对应Git地址为:**
**AndroidAppFactory:[https://github.com/bihe0832/AndroidAppFactory](https://github.com/bihe0832/AndroidAppFactory)**
**对应组件库为:LibHttpCommon & LibHttpAdvanced**
**调用事例参考:https://github.com/bihe0832/AndroidAppFactory/tree/master/BaseDebug/src/main/java/com/bihe0832/android/base/debug/request**
## 简介
一款封装HttpURLConnection实现的简单的网络请求的事例,提供了对应的apk和源码以及调用事例。
## 使用方法
### 添加依赖
在根目录添加发布插件的相关依赖
buildscript {
repositories {
jcenter()
}
}allprojects {
repositories {
jcenter()
}
}
### importdependencies {
api 'com.bihe0832.android:lib-http-advanced:1.3.0'
}或
dependencies {
api 'com.bihe0832.android:lib-wrapper:1.0.3'
}
### 调用
- 请求封装
public class BasicGetRequest extends HttpRequest {
private String mPara = "";
private HttpResponseHandler mResponseHandlerHandler;
public BasicGetRequest(String para, HttpResponseHandler handler) {
this.mPara = para;
this.mResponseHandlerHandler = handler;
}
@Override
public String getUrl() {
StringBuilder builder = new StringBuilder();
builder.append(Constants.PARA_PARA + HTTP_REQ_ENTITY_MERGE + mPara);
return getBaseUrl()+"?"+builder.toString();
}
private String getBaseUrl(){
return Constants.HTTP_DOMAIN + Constants.PATH_GET;
}
@Override
protected void onResponse(int statusCode, String result) {
this.mResponseHandlerHandler.onResponse(statusCode,result);
}
}
- 回调处理private inner class TestBasicResponseHandler : HttpResponseHandler {
override fun onResponse(statusCode: Int, response: String) {
showResult("HTTP状态码:\n\t" + statusCode + " \n " +
"网络请求内容:\n\t" + response)
}
}
private fun showResult(tips: String) {
runOnUiThread { result.text = tips }
}
- 具体调用var result = paraEditText.text?.toString()
if (result?.length?:0 > 0) {
val handle = TestBasicResponseHandler()
val request = BasicGetRequest(result, handle)
HTTPServer.getInstance().doRequest(request)
} else {
showResult("请在输入框输入请求内容!")
}
## 源码运行方法如何修改配置及运行工程,请参考本人博客:[终端基于gradle的开源项目运行环境配置指引](
http://blog.bihe0832.com/android-as-gradle-config.html)### 项目区别
http-advanced和http-common的异同主要表现在
- 共同点
- 两个项目的网络请求都是基于HTTPURLConnection封装的
- 两个项目都支持通过url是以http开头还是https来选择发起HTTP还是HTTPS请求
- 通过网络请求是否包含data内容来区分get或者post
- 支持带cookie的网络请求
- 所有网络请求单线程分发,多线程处理
- 差异点- Advanced会在库里面完成网络请求结果的解析,最终网络请求结果会被处理为一个json数据,Basic层没有做任何处理,将网络请求的内容以String返回