使用到的开发工具有:eclipse、pycharm2019、夜神模拟器
djnago与本地的Android进行连接时,和微信小程序的连接不一样,使用微信小程序开发的过程中需要使用127.0.0.1 作为本机地址,而用Android与djnago连接时要使用当前本机的地址。具体操作如下。
1、新建一个djnago项目,并对djnago中 的setting.py进行修改
这一步是让所有的ip进行访问,也可以只限制几个ip进行访问
2、对Django的启动的配置
将这里修改为0.0.0.0,0.0.0.0表示对监听在本机的所有IP地址上,通过任何一个IP地址都可以访问到。
3、查看自己的ip地址
4、在eclipse开发上,填写要访问的路径
urls="http://xxx:8000/test"
xxx:表示第三步你查询到自己主机上的ip地址
test:为你要访问的djnagourl上面的路由名称
5、完成上面的配置后代码如下
前端代码
private void StartRequest() {
// 网络连接判断
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo networkInfo = cm.getActiveNetworkInfo();
// 新建线程
new Thread() {
public void run() {
try {
if (networkInfo.isAvailable()) {
Log.e("tag", "1231232312");
//向网络端发送数据
SendRequest();
} else {
Toast.makeText(getApplicationContext(), "亲,您还没有联网了!", 0)
.show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
private void SendRequest() {
String ServerUrl = "http://xxx:8000/test";//第四步的url
// 通过HttpClient类与WEB服务器交互
HttpClient httpClient = new DefaultHttpClient();
// 定义与服务器交互的地址
// 设置读取超时,注意CONNECTION_TIMEOUT和SO_TIMEOUT的区别
httpClient.getParams().setParameter(
CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
// 设置读取超时
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
5000);
// POST方式
HttpPost httpRequst = new HttpPost(ServerUrl);
// 准备传输的数据
List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
params.add(new BasicNameValuePair("userid", "123"));//你要传递的数据
params.add(new BasicNameValuePair("password", "123"));
try {
// 发送请求
httpRequst.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
// 得到响应
HttpResponse response = httpClient.execute(httpRequst);
// 返回值如果为200的话则证明成功的得到了数据
if (response.getStatusLine().getStatusCode() == 200) {
StringBuilder builder = new StringBuilder();
// 将得到的数据进行解析
BufferedReader buffer = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
// readLine()阻塞读取
for (String s = buffer.readLine(); s != null; s = buffer
.readLine()) {
builder.append(s);
}
System.out.println(builder.toString());
// 得到Json对象
JSONObject jsonObject = new JSONObject(builder.toString());
// 通过得到键值对的方式得到值
String msg = jsonObject.getString("msg");
Log.e(“返回的值为”,msg);
} else {
Log.e(TAG, "连接超时 ");
}
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG, "请求错误 ");
Log.e(TAG, e.getMessage());
}
return;
}
后台代码:
def test(request):
if request.method == 'POST':
userid = request.POST.get('userid') # 用户id
password=request.POST.get('password')
print(userid+"===="+password)
# result={'msg':'userinfo','userid':userid,'password':password,'username':"消耗",'sex':"男",
# 'age':"21",'idiograph':"哈哈哈哈多付多付",'hobby':"111",'socialIdentity':"111"}#用户存在
if result:#用户存在 true
return HttpResponse(json.dumps({'msg':'ok'}))
else:
return HttpResponse(json.dumps({'msg':'the send message error'}))
启动服务器用即可进行访问。
注:若还有在这个项目上进行网页开发,进行本地测试时,要用 http://127.0.0.1:8000/test进行访问。而不是 http://0.0.0.0:8000/test