- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将 5 个字符串和 3 个整数作为参数发送到我的服务器。我不断收到此错误:“缺少必需的参数(姓名、电子邮件、密码、性别或出生日期)!” [在我的 php 代码末尾找到]。如何将多个基本类型作为参数发送到我的服务器?在摆弄这段代码之前,我使用 StringRequest 和 HashMap 作为重写方法 getParams() 的返回类型。我现在已经添加了整数...dob_day、dob_month 和 dob_year,但遇到了麻烦。这是一些代码...
private void registerUser(final String first_name, final String last_name, final String email, final String password, final String gender, final int dob_day, final int dob_month, final int dob_year) {
// Tag used to cancel the request
String cancel_req_tag = "register";
progressDialog.setMessage("Verifying Registration...");
showDialog();
JSONObject jObj = new JSONObject();
try {
jObj.put("first_name", first_name);
jObj.put("last_name", last_name);
jObj.put("email", email);
jObj.put("password", password);
jObj.put("gender", gender);
jObj.put("dob_day", dob_day);
jObj.put("dob_month", dob_month);
jObj.put("dob_year", dob_year);
Log.i("jsonString", jObj.toString());
} catch(Exception e) {
e.printStackTrace();
}
JsonObjectRequest jsonReq = new JsonObjectRequest(Request.Method.POST,
URL_FOR_REGISTRATION, jObj, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, "Register Response: " + response.toString());
hideDialog();
try {
boolean error = response.getBoolean("error");
if (!error) {
String user = response.getJSONObject("user").getString("first_name");
Toast.makeText(getApplicationContext(), "Registration Successful! \nWelcome, " + user +"!", Toast.LENGTH_LONG).show();
SharedPreferences preferences = getSharedPreferences(PREFS_NAME,MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(PREF_USERNAME, signupInputEmail.getText().toString());
editor.apply();
// Launch login activity
Intent intent = new Intent(
RegisterActivity.this,
LoginActivity.class);
startActivity(intent);
finish();
} else {
String errorMsg = response.getString("error_msg");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Registration Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hideDialog();
}
}) {
/**
* Passing some request headers
*/
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
};
// Adding request to request queue
AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(jsonReq, cancel_req_tag);
}
}
服务器端:
<?php
require_once 'update_user_info.php';
$db = new update_user_info();
// json response array
$response = array("error" => FALSE);
if (isset($_POST['first_name']) && isset($_POST['last_name']) && isset($_POST['email']) && isset($_POST['password']) && isset($_POST['gender']) && isset($_POST['dob_day']) && isset($_POST['dob_month']) && isset($_POST['dob_year'])) {
// receiving the post params
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$dob_day = $_POST['dob_day'];
$dob_month = $_POST['dob_month'];
$dob_year = $_POST['dob_year'];
// check if user is already existed with the same email
if ($db->CheckExistingUser($email)) {
// user already existed
$response["error"] = TRUE;
$response["error_msg"] = "User already exists with email:" . $email;
echo json_encode($response);
} else {
// create a new user
$user = $db->RegisterUser($first_name, $last_name, $email, $password, $gender, $dob_day, $dob_month, $dob_year);
if ($user) {
// user stored successfully
$response["error"] = FALSE;
$response["user"]["first_name"] = $user["first_name"];
$response["user"]["last_name"] = $user["last_name"];
$response["user"]["email"] = $user["email"];
$response["user"]["gender"] = $user["gender"];
$response["user"]["dob_day"] = $user["dob_day"];
$response["user"]["dob_month"] = $user["dob_month"];
$response["user"]["dob_year"] = $user["dob_year"];
echo json_encode($response);
} else {
// user failed to store
$response["error"] = TRUE;
$response["error_msg"] = "Registration Error!";
echo json_encode($response);
}
}
} else {
$response["error"] = TRUE;
$response["error_msg"] = "Required parameters (name, email, password, gender or dob) is missing!";
echo json_encode($response);
}
?>
最佳答案
您正在将 json 文本发送到您的 php 脚本。
但是您的 php 脚本需要 POST 参数。
设置不兼容。
您有两种选择来使它们兼容。
-您可以更改 php 脚本以接收 json 文本。
-您可以更改发送方以标准方式发送post参数。
关于java - 如何发送整数和字符串作为 JsonObjectRequest 的参数 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47109309/
我在 Xamarin 中使用用户名和密码获取 JSON,一切正常,但现在我尝试学习 Android SDK,我想使用 JsonObjectRequest 获取 JSON。 在 Xamarin 中它可以
我是 Android 和 JAVA 的新手,我正在尝试解析 json 响应。我知道如何解析 jsonarray 但不知道如何解析 jsonobject。有人能告诉我怎么做吗?以下是我的回复。 {"11
所以我正在开发一个 Android 应用程序,它从 xampp 服务器上的 MySQL 数据库检索数据。这是来自 android main 的代码, Button scanButton = (Butt
The error is: "cannot resolve constructor jsonobjectrequest(int, java.lang.string, null, anonymous
这是我将数据发布到服务器的方法,但无法发布。我必须将数据发布到服务器,我正在使用 JsonObjectRequest 是否有其他方法来发布数据,请帮助我。 private void postNoti
我在实现 JsonObjectRequest 以从网络获取 JsonObject 时遇到问题。我正在尝试创建一个新的 JsonObjectRequest : JsonObjectRequest j
我一直在尝试使用 Google volley 在 Genymotion 模拟器中执行简单的 JsonObjectRequest。但下面代码的最后一行(JsonObjectRequest 的实例化)会导
我需要在 JsonObjectRequest 中使用 Mediaplayer。我的代码是这样的 obreq = new JsonObjectRequest(Request.Method.GET
我正在使用 Put 方法创建 JsonObjectRequest,但它不起作用并收到“{"detail":"Method\"GET\"not allowed."}"错误消息。 它在 Postman 上
我通过返回通用请求类型的函数创建请求: public final class SpecificRequestService extends RequestService { @Override
我需要按以下格式传递一个字符串作为参数:["default"] 我应该如何构建我的 JSONObject 以执行以下操作: final JsonObjectRequest request =
我正在尝试使用一些参数向我的服务器发送 JsonObjectRequest,但似乎参数没有到达服务器。在 SO 上发帖之前,我尝试了在 google 中找到的所有建议,但没有一个工作正常.. 这是我的
我正在尝试使用 volley 连接到 API,我正在设置所有参数和 header ,但似乎参数被忽略了,我在这里遗漏了什么?我上周开始学习 android volley,但我有点迷路了。 pa
错误: Error:(164, 40) error: no suitable constructor found for JsonObjectRequest(int,String,>,) constr
我在关注这个问题 http://www.androidhive.info/2014/08/android-building-free-wallpapers-app-part-2/ 已经到了我添加启动画
我正在使用 Volley JsonObjectRequest从服务器获取数据。 代码 fragment : JsonObjectRequest jsObjRequest = new JsonObjec
这几天我一直在摆弄这个。做错了。 Android Studio 不会让我用这个错误编译它。所以,我有这个应用程序,其中有两个选项卡和两个 fragment 。一个 fragment 称为 new,该
我正在使用 mcxiaoke/android-volley 库。我得到的编译错误是 Error:(77, 37) error: reference to JsonObjectRequest is am
public class CustomRequest extends JsonObjectRequest { public CustomRequest(String url, JSONObje
我需要将 5 个字符串和 3 个整数作为参数发送到我的服务器。我不断收到此错误:“缺少必需的参数(姓名、电子邮件、密码、性别或出生日期)!” [在我的 php 代码末尾找到]。如何将多个基本类型作为参
我是一名优秀的程序员,十分优秀!