Skip to content

Commit 7f98f31

Browse files
committed
代码提交
一款封装HttpURLConnection实现的简单的网络请求的事例,提供了对应的apk和源码以及调用事例。暂时放上源码,后续提供代码介绍
0 parents  commit 7f98f31

File tree

70 files changed

+2765
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+2765
-0
lines changed

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
*.gradle
3+
4+
*.idea
5+
6+
7+
*.iml
8+
9+
build
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="com.bihe0832.request.demo.advanced" >
4+
5+
<uses-permission android:name="android.permission.INTERNET" />
6+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
7+
8+
<application
9+
android:allowBackup="true"
10+
android:icon="@mipmap/ic_launcher"
11+
android:label="@string/app_name"
12+
android:supportsRtl="true"
13+
android:theme="@style/AppTheme" >
14+
<activity android:name="com.bihe0832.request.demo.MainActivity" >
15+
<intent-filter>
16+
<action android:name="android.intent.action.MAIN" />
17+
18+
<category android:name="android.intent.category.LAUNCHER" />
19+
</intent-filter>
20+
</activity>
21+
</application>
22+
23+
</manifest>
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package com.bihe0832.request.demo;
2+
3+
import android.support.v7.app.AppCompatActivity;
4+
import android.os.Bundle;
5+
import android.view.View;
6+
import android.widget.Button;
7+
import android.widget.EditText;
8+
import android.widget.TextView;
9+
10+
import com.bihe0832.request.demo.advanced.R;
11+
import com.bihe0832.request.demo.request.GetRequest;
12+
import com.bihe0832.request.demo.request.PostRequest;
13+
import com.bihe0832.request.demo.request.TestResponse;
14+
import com.bihe0832.request.libware.request.HTTPServer;
15+
import com.bihe0832.request.libware.request.HttpResponseHandler;
16+
17+
public class MainActivity extends AppCompatActivity {
18+
19+
20+
private EditText mRequestParaEditText;
21+
private TextView mResultView;
22+
@Override
23+
protected void onCreate(Bundle savedInstanceState) {
24+
super.onCreate(savedInstanceState);
25+
setContentView(R.layout.activity_main);
26+
27+
mRequestParaEditText = (EditText)findViewById(R.id.request_paraEditText);
28+
mResultView = (TextView)findViewById(R.id.request_resultTextView);
29+
30+
Button getRequestButton = (Button) findViewById(R.id.request_getBtn);
31+
getRequestButton.setOnClickListener(new View.OnClickListener() {
32+
@Override
33+
public void onClick(View view) {
34+
sendGetRequest();
35+
}
36+
});
37+
38+
Button postRequestButton = (Button) findViewById(R.id.request_postBtn);
39+
postRequestButton.setOnClickListener(new View.OnClickListener() {
40+
@Override
41+
public void onClick(View view) {
42+
sendPostRequest();
43+
}
44+
});
45+
46+
Button clearResultButton = (Button) findViewById(R.id.request_clear);
47+
clearResultButton.setOnClickListener(new View.OnClickListener() {
48+
@Override
49+
public void onClick(View view) {
50+
mResultView.setText("");
51+
}
52+
});
53+
}
54+
55+
private void sendGetRequest(){
56+
String para = mRequestParaEditText.getText().toString();
57+
if(null != para && para.length() > 0){
58+
TestResponesHandler handle = new TestResponesHandler();
59+
GetRequest request = new GetRequest(para,handle);
60+
HTTPServer.getInstance().doRequest(request);
61+
}else{
62+
showResult("请在输入框输入请求内容!");
63+
}
64+
}
65+
66+
private void sendPostRequest(){
67+
String para = mRequestParaEditText.getText().toString();
68+
if(null != para && para.length() > 0){
69+
TestResponesHandler handle = new TestResponesHandler();
70+
PostRequest request = new PostRequest(para,handle);
71+
HTTPServer.getInstance().doRequest(request);
72+
}else{
73+
showResult("请在输入框输入请求内容!");
74+
}
75+
}
76+
77+
private class TestResponesHandler implements HttpResponseHandler<TestResponse> {
78+
79+
@Override
80+
public void onResponse(TestResponse response) {
81+
showResult("ret:\n\t" + response.ret + " \n " +
82+
"msg:\n\t" + response.msg+ " \n " +
83+
"para:\n\t" + response.para+ " \n ");
84+
}
85+
}
86+
87+
private void showResult(final String tips){
88+
runOnUiThread(new Runnable() {
89+
@Override
90+
public void run() {
91+
mResultView.setText(tips);
92+
}
93+
});
94+
}
95+
96+
97+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.bihe0832.request.demo.request;
2+
3+
4+
import com.bihe0832.request.libware.request.HttpRequest;
5+
import com.bihe0832.request.libware.request.HttpResponseHandler;
6+
7+
import org.json.JSONObject;
8+
9+
public class GetRequest extends HttpRequest {
10+
11+
private static final String LOG_TAG = "bihe0832 REQUEST";
12+
13+
14+
public static final String PATH = "/AndroidHTTP/get.php";
15+
public static final String PARA_PARA = "para";
16+
17+
private String mPara = "";
18+
19+
private HttpResponseHandler<TestResponse> mResponseHandlerHandler;
20+
21+
public GetRequest(String para, HttpResponseHandler<TestResponse> handler) {
22+
super(PATH);
23+
this.mPara = para;
24+
this.mResponseHandlerHandler = handler;
25+
}
26+
27+
@Override
28+
public String getUrl() {
29+
StringBuilder builder = new StringBuilder();
30+
builder.append(PARA_PARA + HTTP_REQ_ENTITY_MERGE + mPara);
31+
return getBaseUrl()+"?"+builder.toString();
32+
}
33+
34+
@Override
35+
protected void onRequestSuccess(int statusCode, JSONObject response) {
36+
TestResponse responses = new TestResponse();
37+
responses.parseSuccessResponse(statusCode, response);
38+
if (mResponseHandlerHandler != null) {
39+
mResponseHandlerHandler.onResponse(responses);
40+
}
41+
}
42+
43+
@Override
44+
protected void onRequestFailure(int statusCode, String errorResponse) {
45+
TestResponse responses = new TestResponse();
46+
responses.parseFailureResponse(statusCode, errorResponse);
47+
if (mResponseHandlerHandler != null) {
48+
mResponseHandlerHandler.onResponse(responses);
49+
}
50+
}
51+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.bihe0832.request.demo.request;
2+
3+
4+
import com.bihe0832.request.libware.TextUtils;
5+
import com.bihe0832.request.libware.request.HttpRequest;
6+
import com.bihe0832.request.libware.request.HttpResponseHandler;
7+
8+
import org.json.JSONObject;
9+
10+
public class PostRequest extends HttpRequest {
11+
12+
private static final String LOG_TAG = "bihe0832 REQUEST";
13+
14+
15+
public static final String PATH = "/AndroidHTTP/post.php";
16+
public static final String PARA_PARA = "para";
17+
18+
private HttpResponseHandler<TestResponse> mResponseHandlerHandler;
19+
20+
public PostRequest(String para, HttpResponseHandler<TestResponse> handler) {
21+
super(PATH);
22+
String encodedParam = PARA_PARA + HTTP_REQ_ENTITY_MERGE + para;
23+
this.data = TextUtils.getBytesUTF8(encodedParam);
24+
this.mResponseHandlerHandler = handler;
25+
}
26+
27+
@Override
28+
public String getUrl() {
29+
return getBaseUrl();
30+
}
31+
32+
@Override
33+
protected void onRequestSuccess(int statusCode, JSONObject response) {
34+
TestResponse responses = new TestResponse();
35+
responses.parseSuccessResponse(statusCode, response);
36+
if (mResponseHandlerHandler != null) {
37+
mResponseHandlerHandler.onResponse(responses);
38+
}
39+
}
40+
41+
@Override
42+
protected void onRequestFailure(int statusCode, String errorResponse) {
43+
TestResponse responses = new TestResponse();
44+
responses.parseFailureResponse(statusCode, errorResponse);
45+
if (mResponseHandlerHandler != null) {
46+
mResponseHandlerHandler.onResponse(responses);
47+
}
48+
}
49+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.bihe0832.request.demo.request;
2+
3+
4+
import android.util.Log;
5+
6+
import com.bihe0832.request.libware.request.HTTPServer;
7+
import com.bihe0832.request.libware.request.HttpResponse;
8+
9+
import org.json.JSONException;
10+
import org.json.JSONObject;
11+
12+
13+
public class TestResponse extends HttpResponse {
14+
15+
private static final String LOG_TAG = "bihe0832 REQUEST";
16+
public String para = "";
17+
18+
public static final String PARA_PARA = "para";
19+
20+
@Override
21+
public void parseJson(JSONObject json) {
22+
super.parseBaseJson(json);
23+
if (HTTPServer.RET_SUCC == ret) {
24+
parseGuestUserCheckSuccRespones(json);
25+
} else {
26+
Log.w(LOG_TAG, json.toString());
27+
}
28+
}
29+
30+
private void parseGuestUserCheckSuccRespones(JSONObject json) {
31+
try {
32+
para = json.getString(PARA_PARA);
33+
} catch (JSONException e) {
34+
e.printStackTrace();
35+
}
36+
}
37+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.bihe0832.request.libware;
2+
3+
import java.io.UnsupportedEncodingException;
4+
import java.util.ArrayList;
5+
import java.util.Random;
6+
import java.util.regex.Matcher;
7+
import java.util.regex.Pattern;
8+
9+
public class TextUtils {
10+
/**
11+
* 判断字符串是否为空
12+
*
13+
* @param s
14+
* 需要判断的字符串
15+
* @return boolean 为空返回true
16+
*/
17+
public static boolean ckIsEmpty(String s) {
18+
if (s == null || s.trim().equals("") || s.trim().equals("null")) {
19+
return true;
20+
}
21+
return false;
22+
}
23+
24+
public static byte[] getBytesUTF8(String str) {
25+
try {
26+
return str.getBytes("UTF-8");
27+
} catch (UnsupportedEncodingException e) {
28+
return null;
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)