Android使用 asynchttpclient的post方法发送数据大致可分为两种情况;一种使用

post(android.content.Context context, java.lang.String url, cz.msebera.android.httpclient.HttpEntity entity, java.lang.String contentType, ResponseHandlerInterface responseHandler)

这种是可以自定义post的参数的格式的,一般使用json,详情请见(http://stackoverflow.com/questions/26842090/asynchttpclient-passed-contenttype-will-be-ignored-because-httpentity-sets-cont)举例说明

                AsyncHttpClient client = new AsyncHttpClient();                final String url = Utils.baseUrl+"regist.html";                JSONObject jsonObject = new JSONObject();                try {                    jsonObject.put("username",etPhoneNumber.getText());                    jsonObject.put("password",etPassword.getText());                } catch (JSONException e) {                    e.printStackTrace();                }                ByteArrayEntity entity = null;                try {                    entity = new ByteArrayEntity(jsonObject.toString().getBytes("UTF-8"));                    entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));                } catch (UnsupportedEncodingException e) {                    e.printStackTrace();                }                client.post(mContext,url,entity,"application/json",new JsonHttpResponseHandler(){                    @Override                    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {                        super.onSuccess(statusCode, headers, response);                        Log.e("rs",response.toString());                    }                    @Override                    public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {                        super.onFailure(statusCode, headers, throwable, errorResponse);                    }                });

另一种是使用

post(java.lang.String url, RequestParams params, ResponseHandlerInterface responseHandler)

这个post方法,这种是就是常规的提价表单格式,齐参数的格式为username=yzk&password=yzk这种。使用举例

 final RequestParams params = new RequestParams();                params.put("username",etPhoneNumber.getText());                params.put("password",etPassword.getText());                client.post(url,params,new JsonHttpResponseHandler(){                    @Override                    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {                        super.onSuccess(statusCode, headers, response);                        try {                            Log.e("rs",response.getString("status"));                            if(response.getString("status").equals("0")){                                user = User.getInsstance();                                user.setIsOnline(true);                                user.setToken(response.getString("token"));                                user.setId(etPhoneNumber.getText().toString());                                Toast.makeText(mContext,"注册成功",Toast.LENGTH_LONG).show();                                mContext.finish();                            }else{                                Toast.makeText(mContext,"改用已注册",Toast.LENGTH_LONG).show();                            }                        } catch (JSONException e) {                            e.printStackTrace();                        }                    }                    @Override                    public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {                        super.onFailure(statusCode, headers, throwable, errorResponse);                        Toast.makeText(mContext,"网络错误",Toast.LENGTH_LONG).show();                    }

这其实是比赛项目中碰到的一个问题,一开始服务器写的是解析json格式的,而我使用的是第二种post方法,所以报错,还子啊上面花费一些时间,把服务器的代码改为了处理非json格式的,当时觉得asynchttpclient不可能不提供json的传递方法,于是又静下来看看,特在此总结。

更多相关文章

  1. Android Studio支持Java8方法
  2. Android 分多次(每次一个)请求权限时的onRequestPermissionsResult
  3. Android EditText得到焦点失去焦点处理方法
  4. Android中Intent延时跳转的方法
  5. android编程中setLayoutParams方法设置
  6. Android Studio error: Unable to start the daemon process的解
  7. android 设置应用程序装在T卡的方法
  8. android监听联系人变化的方法
  9. Android --- 取得电话簿信息,并保存为Vcard格式

随机推荐

  1. Android(安卓)Gradle学习(五):Extension详
  2. Android(安卓)NDK学习(3)使用Javah命令生成
  3. android 桌面斗地主
  4. Android开发之Toast全接触
  5. Android(安卓)LBS系列02 获取当前位置
  6. Android(安卓)程式开发:(一)详解Activity —
  7. [学习记录]旋转屏幕禁止重新调用oncreat
  8. 分享:android图片浏览器—类微信朋友圈相
  9. Android退出程序问题综述
  10. 禁用button的方法