我正在尝试将一些用户数据(其注册android页面)发送到我的服务器主机,但是尝试从服务器端获取json对象时出现错误,那么如何解决此问题?
更新 ::我正在使用byethost服务,并且我了解其中包含cookie。那么我如何使用排球库解决这个问题呢?
在我的RegisterActivity类中,有一个名为onResponse()的方法,问题开始于此。在这种方法中,我写了这行,总是引发关于不将字符串转换为json对象的异常,我认为这与我的java代码无关,我无法将字符串转换为json的原因我想是它不是有效的json对象。但我不知道为什么它无效。
这是我的register.php文件 https://www.androidtutorialpoint.com/wp-content/uploads/2016/09/register.txt https://www.androidtutorialpoint.com/wp-content/uploads/2016/09/update_user_info.txt https://www.androidtutorialpoint.com/wp-content/uploads/2016/09/android_login_connect.txt https://www.androidtutorialpoint.com/wp-content/uploads/2016/09/android_login_config.txt
顺便说一句,我只是遵循一个教程,所以我对php的了解不多。
这是我的RegisterActivity类中触发异常的方法。
@Override
public void onResponse(String response) {
Toast.makeText(RegisterActivity.this, response,
Toast.LENGTH_LONG).show();
Log.d(TAG, "Register Response: " + response.toString());
hideDialog();
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
String user =
jObj.getJSONObject("user").getString("name");
Toast.makeText(getApplicationContext(), "Hi " + user +
", You are successfully Added!",
Toast.LENGTH_SHORT).show();
// Launch login activity
Intent intent = new Intent(
RegisterActivity.this,
LoginActivity.class);
startActivity(intent);
finish();
} else {
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
我希望有一个有效的json对象将用户数据传递到我的服务器,但是我已经拥有的是一些会引发异常的无效json。
答案 0 :(得分:0)
好吧,如果有人遵循了注册和登录页面的教程,但在这里不起作用,则是一些原因。 1)您的php文件存在问题,主要是此文件。 2)如果将字符串转换为json对象存在问题,请打印字符串,并查看其是否为有效的json。 3)如果这些东西一切都很好,也许您应该检查数据库,看一切是否适合php和用户数据等。
我的问题都不是这些,因为事实证明我的服务器主机与cookie有关(byethost),您应该添加一些头文件来解决问题,这里是一个很好的链接 How to set custom header in Volley Request 但是我只是通过使用另一台服务器主机(000host)解决了我的问题,并且工作正常。顺便说一句,如果您尝试使用Wamp,但它也不起作用,请使用免费的000host。已经三天了,我被这件事卡住了。祝你好运