使用AsyncHttpClient发送post请求报400
问题: 在Android利用AsyncHttpClient发送post请求时报400的错误,请求参数存放在RequestParams params里面,后台以requireBody接收参数参数要以json的形式传送
加上以下代码请求就正常了
params.setUseJsonStreamer(true);
贴出请求封装代码
public void post(String url, RequestParams params, final Activity activity) {
AsyncHttpClient client = AsyncHttpCilentUtil.getInstance(activity);
Header[] headers = new Header[0];
String token = CacheUtils.getString(activity, "token");
if (!TextUtils.isEmpty(token)) {
headers = new BasicHeader[2];
headers[0] = new BasicHeader("Token", token);
headers[1] = new BasicHeader("Content-Type", "application/json");
}
Log.i("请求地址", UrlHelper.getRequestUrl(url));
params.setUseJsonStreamer(true);
client.post(activity, UrlHelper.getRequestUrl(url), headers, params, "", new DataAsyncHttpResponseHandler() {
@Override
public void onStart() {
super.onStart();
pd = new ProgressDialog(activity);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setCancelable(false);
pd.setMessage("请稍候...");
pd.show();
}
@Override
public void onFinish() {
super.onFinish();
pd.dismiss();
}
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
String resultString = new String(responseBody);
LogUtil.e("onSuccess-----------/n" + resultString);
requireSuccess(resultString);
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
pd.dismiss();
requireFailure(activity,statusCode, headers, responseBody, error);
}
});
}```
这篇博客主要讨论了在Android应用中使用AsyncHttpClient进行POST请求时遇到400错误的状况。问题在于请求参数需要以JSON格式发送,通过设置RequestParams的useJsonStreamer为true,使请求能够正常发送。代码示例展示了如何在AsyncHttpClient的post方法中添加必要头信息和参数,从而成功发送JSON格式的POST请求。
5255

被折叠的 条评论
为什么被折叠?



