android drupal,使用Rest API登录Android中的Drupal

我正在创建一个Native Android应用程序。我将使用Rest Api从我的Android设备登录到Drupal。我设置的Drupal服务工作正常。我用邮差测试了它。使用Rest API登录Android中的Drupal

我是一名初学者,遇到一些问题,找到解释如何做到这一点的好资源和新资源。我发现这个老教程。不幸的是,我无法让它工作。

如果您知道更好的书写方式,请告诉我。 任何帮助,将不胜感激。

public class LoginActivity extends AppCompatActivity {

public String session_name;

public String session_id;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_login);

}

//background task to login into Drupal

private class LoginProcess extends AsyncTask {

protected Integer doInBackground(String... params) {

HttpClient httpclient = new DefaultHttpClient();

//set the remote endpoint URL

HttpPost httppost = new HttpPost("http://localhost:8012/Adrupal/apistuff/user/login.json");

try {

//get the UI elements for username and password

EditText username= (EditText) findViewById(R.id.editUsername);

EditText password= (EditText) findViewById(R.id.editPassword);

JSONObject json = new JSONObject();

//extract the username and password from UI elements and create a JSON object

json.put("name", username.getText().toString().trim());

json.put("pass", password.getText().toString().trim());

//add serialised JSON object into POST request

StringEntity se = new StringEntity(json.toString());

//set request content type

se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));

httppost.setEntity(se);

//send the POST request

HttpResponse response = httpclient.execute(httppost);

//read the response from Services endpoint

String jsonResponse = EntityUtils.toString(response.getEntity());

JSONObject jsonObject = new JSONObject(jsonResponse);

//read the session information

session_name=jsonObject.getString("session_name");

session_id=jsonObject.getString("sessid");

Toast.makeText(LoginActivity.this, session_id + "this" + session_name, Toast.LENGTH_LONG).show();

return 0;

}catch (Exception e) {

Log.v("Error adding article", e.getMessage());

}

return 0;

}

protected void onPostExecute(Integer result) {

//create an intent to start the ListActivity

Intent intent = new Intent(LoginActivity.this, ListActivity.class);

//pass the session_id and session_name to ListActivity

intent.putExtra("SESSION_ID", session_id);

intent.putExtra("SESSION_NAME", session_name);

//start the ListActivity

Toast.makeText(LoginActivity.this, session_id + "this" + session_name, Toast.LENGTH_LONG).show();

startActivity(intent);

}

}

//click listener for doLogin button

public void doLoginButton_click(View view){

new LoginProcess().execute();

}

}

2016-08-06

Kong

+0

这会返回什么错误? –

+0

我犯了一个愚蠢的错误。 Drupal站点在我的机器上运行在本地主机上。当我将它移动到网上时,它工作。不管怎么说,还是要谢谢你。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值