我正在这里做一个项目并且遇到了一个问题。它之前工作正常,但我正在做的是向 url 发送请求并期待 JSON 响应。但是,当我检查响应时,它会一直返回为空。这以前不是问题,但随机开始发生。任何帮助将不胜感激!
此外,我还有另一个真正执行 url 请求的类。
这第一位是登录页面上的 onclick 侦听器。它接受文本字段并将它们转换为字符串。登录的工作方式是它必须将所有信息推送到 URL,这就是它设置这种方式的原因。
bt.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String account = acct.getText().toString();
String uname = user.getText().toString();
String passWord = pass.getText().toString();
url = ap+"&t2mdeveloperid="+id+account+"&t2musername="+uname+"&t2mpassword="+passWord;
new Login().execute();
}
}
);
}
好的,这是运行请求的异步任务。
private class Login extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute(){
super.onPreExecute();
//Here we will display our progress bar. This is dependent on each page.
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Loading Talk2M Account");
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0){
//We need to create an object to call our service handler to make our http request.
ServiceHandler login = new ServiceHandler();
//Now we need to make a request to the url as well as recieve the response.
String response = login.makeServiceCall(url, ServiceHandler.GET);
Log.d("Response: ", "> " + response);
try{
JSONObject jsonObj = new JSONObject(response);
String session = jsonObj.getString(TAG_SESSION);
}catch(JSONException e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result){
super.onPostExecute(result);
if(pDialog.isShowing())
pDialog.dismiss();
}
}