求问服务器端如何响应android端发送的信息(php Study)

问题描述:

新手小白最近在做一个课程项目:
1.手机端(基于android)发送数据到云服务器端
2.服务器端记录数据至数据库
3.手机端再访问服务器端网页,可以在网页上看到表格,表格里是之前发送的数据

我知道在大神们眼里这项目很简单甚至很蠢 但刚入门需要一些帮助

买了腾讯云学生机 用了phpStudy软件架构为apache+mysql+php 参考了《第一行代码》后,android端已经可以访问服务器的HTML网页,然后也可以获取服务器端的index数据,那么问题来了:

1.我想知道服务器端要对android端的访问进行回应,再将数据丢至数据库的操作如何完成,需要在哪个部分进行哪些操作?大致讲一下思路就行~

2.看《第一行代码》上是基于apache自己搭建了服务器,新建了xml和json格式数据,再用对应的方式进行访问解析。但我直接访问云服务器得到的数据是来自于HTML里面的 没看到xml也没有json,不知道是不是我理解有问题。

可能提问得并不专业,希望能够看懂给点建议,不胜感激!

你要用PHP就不要总拿着第一行代码Android看了,建议看看《PHP与MySQL程序设计(最新版)》,或者先去网上找一个PHP写入数据到MySQL。

目前你急需的,也就:
1.PHP读取,写入数据到MySQL;
2.PHP读取,返回JSON字符串。

如果实在着急,可以先去找到这两点问题的解决方案,后面在对代码进行优化。

(1)既然你用了php,那么php可以得到android以表单形式提交的参数(和网页填表提交是一样的),然后存入数据库。
(2)你可以返回html也可以返回xml或者json,你没有看到xml/json是你的php没有返回这些,你的理解没有错。但是你应该看稍微深入点的书,或者google下。

我觉得有时间可以参考下[Head.First.PHP.&.MySQL].Lynn.Beighley这本书,挺不错的

1.在服务端写一个http连接请求, 如http:192.168.xx.1:8080/Object项目名称/requetAction/
2.在android端通过HTTP请求将你的需要上传的数据封装成json 上传到服务器 ,服务器解析出来后 插入数据库及ok了
Android studio 导入 compile 'com.loopj.android:android-async-http:1.4.9'
compile 'com.google.code.gson:gson:2.8.2'

     if (responseHandler != null) {
        Utils_Http.httpSyncCancle(httpClient, responseHandler);
        responseCsrHandler = null;
    }
    responseCsrHandler = new JsonHttpResponseHandler() {
        public Dialog loadingDialog;

        @Override
        public void onStart() {
            super.onStart();
            loadingDialog = Utils_DialogDisPlay.createLoadingDialog(getActivity(), "加载中...");
            loadingDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
                @Override
                public void onDismiss(DialogInterface dialog) {
                    if (responseCsrHandler != null) {
                        Utils_Http.httpSyncCancle(httpClient, responseCsrHandler);
                        responseCsrHandler = null;
                    }
                }
            });
        }

        @Override
        public void onFinish() {
            super.onFinish();
            Utils_DialogDisPlay.closeDialog(loadingDialog);
        }

        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            super.onSuccess(statusCode, headers, response);
            if (statusCode == 200) {
                String msg = "";
                String result = response.toString();
                if (result != null) {
                    Logger.json(result);
                    Gson gson = new Gson();
                    final DateBean dateBean = gson.fromJson(result, ResponseDateBean.class); 
                }
            }
        }

        @Override
        public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
            super.onFailure(statusCode, headers, throwable, errorResponse);
        }
    };

                       String url = http:192.168.xx.1:8080/Object项目名称/requetAction/ ;
    Utils_Http.httpSyncPostUrl(httpClient, getActivity(),   new Gson().toJson(RequestionDateBean), url, responseHandler);
}

     public static AsyncHttpClient httpClientInstance() {
    AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
    return asyncHttpClient;
}

      public static void httpSyncPostUrl(AsyncHttpClient asyncHttpClient, Context mContext, String jsonRequest, String url, ResponseHandlerInterface responseHandler ){
    StringEntity entity = null;
    entity = new StringEntity(jsonRequest, "utf-8");
    entity.setContentEncoding("UTF-8");
    entity.setContentType("application/json");
    asyncHttpClient.post(mContext, url, entity, "application/json", responseHandler);
    responseHandler.setTag(responseHandler);
}