所以从前面的一个问题我添加了一些新的依赖项到我的Gradle属性以允许HttpGetRequest命令等。但是现在我的代码中还有其他错误,我认为我添加的新依赖项与JSON不兼容声明。您能否请一看,看看这些依赖项是否破坏了我的代码?
Gradle Dependencies
dependencies {
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
我的LoginActivity代码:
package com.example.george.youdecide;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import cz.msebera.android.httpclient.NameValuePair;
import cz.msebera.android.httpclient.message.BasicNameValuePair;
public class LoginActivity extends Activity implements OnClickListener {
// Initializing variables
private EditText user, pass;
private ImageView mSubmit, mRegister;
// Progress Dialog
private ProgressDialog pDialog;
// JSON parser class
JSONParser jsonParser = new JSONParser();
//Localhost URL stuff goes here
private static final String LOGIN_URL = "http://172.18.5.215/webservice/login.php";
//JSON element ids from repsonse of php script:
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//setup input fields
user = (EditText)findViewById(R.id.usernameLogin);
pass = (EditText)findViewById(R.id.passwordLogin);
//setup buttons
mSubmit = (ImageView) findViewById(R.id.loginButton);
//register listeners
mSubmit.setOnClickListener((OnClickListener) this);
}
@Override
public void onClick(View v) {
// determine which button was pressed:
switch (v.getId()) {
case R.id.loginButton:
new AttemptLogin().execute();
break;
//case R.id.register:
// Intent i = new Intent(this, Register.class);
//startActivity(i);
// break;
default:
break;
}
}
class AttemptLogin extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
boolean failure = false;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(LoginActivity.this);
pDialog.setMessage("Attempting login...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
// Check for success tag
//user.getText method error here
int success;
String username = user.getText().toString();
String password = pass.getText().toString();
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
Log.d("request!", "starting");
// getting product details by making HTTP request
//Parameter errors here
JSONObject json = jsonParser.getJSONFromUrl(
LOGIN_URL, "POST", params);
// check your log for json response
Log.d("Login attempt", json.toString());
// json success tag
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("Login Successful!", json.toString());
Intent i = new Intent(LoginActivity.this, MainActivity.class);
finish();
startActivity(i);
return json.getString(TAG_MESSAGE);
}else{
Log.d("Login Failure!", json.getString(TAG_MESSAGE));
return json.getString(TAG_MESSAGE);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
/**
* Get rid of progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once product deleted
pDialog.dismiss();
if (file_url != null){
Toast.makeText(LoginActivity.this, file_url, Toast.LENGTH_LONG).show();
}
}
}
}
更改依赖关系后,我仍然会遇到代码的这些部分错误。
int success;
String username = user.getText().toString();
String password = pass.getText().toString();
try {
在这里
Log.d("request!", "starting");
// getting product details by making HTTP request
JSONObject json = jsonParser.makeHttpRequest(
LOGIN_URL, "POST", params);
答案 0 :(得分:0)
使用:
android {
...
useLibrary 'org.apache.http.legacy'
...
而不是:
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'