Android 获取Json Web服务的不正确响应
我正在使用okhttp库进行Json解析 我已经为我的登录Web服务创建了异步任务,如下所示:Android 获取Json Web服务的不正确响应,android,json,httpresponse,okhttp,Android,Json,Httpresponse,Okhttp,我正在使用okhttp库进行Json解析 我已经为我的登录Web服务创建了异步任务,如下所示: class LoginAsyncTask extends AsyncTask<Void, Void, Void> { private ProgressDialog dialog; private String mstrLoginResponse=""; @Override protected void onPreExecute() { su
class LoginAsyncTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog dialog;
private String mstrLoginResponse="";
@Override
protected void onPreExecute() {
super.onPreExecute();
try {
dialog = new ProgressDialog(SignInActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setCancelable(false);
if (!dialog.isShowing()) {
dialog.show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected Void doInBackground(Void... params) {
try {
RequestBody formBody = new FormEncodingBuilder()
.add("mobile_number", strPhone)
.add("password", strPassword)
.build();
mstrLoginResponse = HttpUtils.postRun("login", formBody);
Constant.displayLogE(">>>TT : ",""+mstrLoginResponse);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
if (dialog.isShowing()) {
dialog.dismiss();
}
if (mstrLoginResponse != null) {
try {
JSONObject jsonRegister = new JSONObject(mstrLoginResponse);
int strLoginStatus = jsonRegister.getInt("status");
String strMessage = jsonRegister.getString("message");
if (strLoginStatus == 1) {
JSONObject jsonUserId = jsonRegister.getJSONObject("data");
String strUserId = jsonUserId.getString("user_id");
AppSettings.setPref(SignInActivity.this, USER_ID, String.valueOf(strUserId));
startActivity(new Intent(SignInActivity.this, MainActivity.class));
finish();
Constant.displayToast(SignInActivity.this, "" + strMessage);
} else {
ApiUtils.showAlertDialogue(SignInActivity.this, "" + strMessage);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
可能是什么错误?请帮忙
==>>编辑:
在《邮递员》中获得正确的回复,如下所示:
{
"status": 1,
"message": "Login successful",
"data": {
"name": "subhu",
"mobile_number": "7777777777",
"email": "bhargavmodi777@gmail.com",
"user_id": "20"
}
}您的响应-404未找到页面告诉我您的端点不存在,因为您输入的端点不正确,或者服务器根本没有运行
您发布的异常与同一问题有关,它无法解析JSON,因为web调用接收的不是application/JSON,而是原始HTML
Exeption : org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot
如上所述,公共静态字符串BASE_URL=http://temp.in/projects/temp/; 看起来像一个坏的URL。以下是我的建议:
首先在浏览器中手动加载该URL,您会注意到客户端调用收到的HTML将呈现给您。
确保您正在运行服务器/服务或响应您请求的任何服务。你说邮递员工作,你用了什么参数?你在和什么交流?
如果邮递员工作,邮递员从您的计算机上运行,我想您的计算机已连接到您的本地网络。您的Android设备也在本地网络上吗?或者您使用的是3G/LTE手机服务。如果是,则除非连接到VPN或其他设备,否则无法访问端点。
服务器在POST上需要什么数据类型?你确定它不是JSON而不是FormBody?你正在向我的post请求发送FormBody..它与你在postman和AsyncTask中使用的url相同?是的,先生,我使用相同的..你添加了postman响应。这只告诉我您的端点使用application/json进行响应。您正在发送哪些参数?你打什么网址?您在手机上执行的代码是在LTE/3G网络上还是在WIFI/ETHERNET连接上。。。请检查我的最新答案。让我添加邮递员回复。请。一分钟后检查。。我正在编辑。。
{
"status": 1,
"message": "Login successful",
"data": {
"name": "subhu",
"mobile_number": "7777777777",
"email": "bhargavmodi777@gmail.com",
"user_id": "20"
}
Exeption : org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot