使用xutils3进行网络请求,突然报错:Unsupported Media Type
post的RequestParams使用了addQueryStringParameter,用反了,应该用addBodyParameter
解决:
post
RequestParams params = new RequestParams(Constant.yiBeiLineSeamanSearch);
params.addHeader("Authorization", Constant.authorization);
params.addHeader("language", Constant.system_language);
// params.addHeader("platform", "mobile");
// params.addHeader("content-type", "application/json;charset=utf-8");
params.setAsJsonContent(true);
params.addBodyParameter("currentPage", 1);
params.addBodyParameter("pageSize", 50);
try {
Log.e("wy", "92 keywords: " + getIntent().getStringExtra("keywords"));
params.addBodyParameter("keywords", getIntent().getStringExtra("keywords"));
} catch (Exception e) {
e.printStackTrace();
}
Log.e("wy", "125onViewCreated params: " + params);
x.http().post(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
Log.e("wy", "129 professionInfo: " + result);
KeySearchBean professionInfo = JSON.parseObject(result, KeySearchBean.class);
if (professionInfo.getCode().equals("00000000")) {
llHotSearch.setVisibility(View.GONE);
// SearchResultLvAdapter serviceLvAdapter = new SearchResultLvAdapter(professionInfo.getData().getRecords(), HotSearchActivity.this);
// searchResultLv.setAdapter(serviceLvAdapter);
searchResultLvAdapter.addData(professionInfo.getData().getRecords());
searchResultLvAdapter.notifyDataSetChanged();
searchResultLv.setVisibility(View.VISIBLE);
searchResultLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.e("wy", "141 onItemClick: ");
int serviceId = professionInfo.getData().getRecords().get(position).getServiceId();
Intent intent = new Intent(YibeiHomeSearchActivity.this, ServiceDetailWebActivity.class);
intent.putExtra("weburl", Constant.service + "serviceId=" + serviceId);
// 收藏用
intent.putExtra("typeId", professionInfo.getData().getRecords().get(position).getIsCollection());
startActivity(intent);
}
});
} else {
Toast.makeText(x.app(), professionInfo.getMsg(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Log.e("wy", "result: " + ex.getMessage());
}
@Override
public void onCancelled(CancelledException cex) {
Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
}
@Override
public void onFinished() {
}
});
get
RequestParams params = new RequestParams(Constant.yiBeiLineSearch);
params.addHeader("Authorization", Constant.authorization);
params.addHeader("language", Constant.system_language);
// params.setAsJsonContent(true);
// params.addQueryStringParameter("currentSearchType", 2);
// params.addQueryStringParameter("pageSize", 30);
// params.addQueryStringParameter("currentPage", 1);
try {
// params.addQueryStringParameter("keywords", URLEncoder.encode(s.trim(), "UTF-8"));
params.addQueryStringParameter("searchTerms", s.trim());
} catch (Exception e) {
e.printStackTrace();
}
Log.e("wy", "285onViewCreated params: " + params);
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
Log.e("wy", "129 professionInfo: " + result);
YiBeiLineSearchBean professionInfo = JSON.parseObject(result, YiBeiLineSearchBean.class);
if (professionInfo.getCode().equals("00000000")) {
List<YiBeiLineSearchBean.DataDTO> data = professionInfo.getData();
Log.e("wy", "137 onSuccess size: " + data.get(0).getExpertVoList().size());
adapter = new YibeiLineSearchAdapter(YibeiLineSearchActivity.this, data.get(0).getExpertVoList());
mRecyclerview.setLayoutManager(new LinearLayoutManager(YibeiLineSearchActivity.this));
mRecyclerview.setAdapter(adapter);
// adapter.notifyDataSetChanged();
adapter.setItemClickListenerTv(new YibeiLineSearchAdapter.OnItemClickListenerTv() {
@Override
public void onItemClick(View view, int position) {
Log.e("wy", "onItemClick 跳到专家聊天: ");
SendMsgRequireBean sendMsgRequireBean = new SendMsgRequireBean();
sendMsgRequireBean.setFrontId(Constant.userId);
sendMsgRequireBean.setManageId("manage_" + data.get(0).getExpertVoList().get(position).getUserId());
sendMsgRequireBean.setType(1);
String sendMsgRequireBeanString = JSON.toJSONString(sendMsgRequireBean);
RequestParams params = new RequestParams(Constant.sendMsg);
params.addHeader("Authorization", Constant.authorization);
params.addHeader("language", Constant.system_language);
params.addBodyParameter("", sendMsgRequireBeanString);
Log.e("wy", "111 params: " + params);
x.http().post(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
Log.e("wy", "116result: " + result);
SendMegBean sendMegBean = JSON.parseObject(result, SendMegBean.class);
if (sendMegBean.getCode().equals("00000000")) {
// Intent intent = new Intent(YibeiLineActivity.this, ChatActivity.class);
Intent intent = new Intent(YibeiLineActivity.this, TUIC2CChatActivity.class);
// startActivity(intent);
// TUICore.startActivity(TUIConstants.TUIChat.C2C_CHAT_ACTIVITY_NAME, new Bundle());
// ContactItemBean.TYPE_C2C表示一对一聊天
ContactUtils.startChatActivity("manage_" + data.get(0).getExpertVoList().get(position).getUserId(), ContactItemBean.TYPE_C2C, "", "");
}
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Log.e("wy", "132 result: " + ex.getMessage());
}
@Override
public void onCancelled(CancelledException cex) {
Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
}
@Override
public void onFinished() {
}
});
}
});
adapter.setItemClickListener(new YibeiLineSearchAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Log.e("wy", "onItemClick 跳到专家风采: ");
Intent intent = new Intent(YibeiLineSearchActivity.this, ExpertInfoActivity.class);
intent.putExtra("expertId", data.get(0).getExpertVoList().get(position).getExpertId());
// intent.putExtra("productId", professionInfo.getData().getRecords().get(position).getProductId());
startActivity(intent);
}
@Override
public void onItemLongClick(View view, int position) {
}
});
} else {
Toast.makeText(x.app(), professionInfo.getMsg(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Log.e("wy", "result: " + ex.getMessage());
}
@Override
public void onCancelled(CancelledException cex) {
Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
}
@Override
public void onFinished() {
}
});
}