Добрый день,
Мне нужен совет. Не могу понять, как это сделать правильно
Я хочу отправить JSON на свой сервер с помощью залпа,
Я боролся с чем-то таким простым вот уже несколько дней, и мой мозг превратился в мю sh,
JSON, который я хочу отправить, называется "Тест"
Я пытался отправить его в виде строки, но текст слишком велик для URL
Я пытался Google et c тоже безрезультатно, любая помощь будет принята с благодарностью
Код залпа
int x = 0;
int p = 1;
while (x < Array.size() && p < Array.size()) {
StaffMemebers = "Staff Member " + p++ + " : " + Array.get(x++);
Test.add(StaffMemebers);
Uri.Builder PostURLBuilder = new Uri.Builder();
PostURLBuilder.scheme("https")
.authority("www.EXAMPLE.co.za")
.appendPath("app-createproject-test.asp")
.appendQueryParameter("MyForm", "Yes")
.appendQueryParameter("ClientID", clientId)
.appendQueryParameter("Username", email)
.appendQueryParameter("Pwd", pwd)
.appendQueryParameter("TimeLogDueDate", dateText.getText().toString())
.appendQueryParameter("TimeLogStartDate", startdate.getText().toString())
.appendQueryParameter("ProjectManager", ManagerSelected)
.appendQueryParameter("AllocatedClient", ClientSelected)
.appendQueryParameter("Description", Description.getText().toString())
.appendQueryParameter("SelectedStaff", String.valueOf(Test))
.appendQueryParameter("Notes", notesEditText.getText().toString())
.appendQueryParameter("LogType", "p");
postURL = PostURLBuilder.build().toString();
}
Toasty.info(this, postURL, Toasty.LENGTH_LONG).show();
final ProgressDialog pd = new ProgressDialog(createProject.this);
pd.setMessage("Please Wait....");
pd.setCanceledOnTouchOutside(false);
pd.show();
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest postRequest = new StringRequest(Request.Method.POST, postURL, new Response.Listener < String > () {
@SuppressLint("SetTextI18n")
@Override
public void onResponse(String response) {
pd.cancel();
if (response.contains("Time Logged Successfully !")) {
AddStaff.setText("Project Created");
AddStaff.setBackgroundColor(getResources().getColor(R.color.Green));
AddStaff.setTextColor(getResources().getColor(R.color.Black));
Toasty.success(createProject.this, response, Toast.LENGTH_LONG).show();
} else {
AddStaff.setText("Error Creating Project");
AddStaff.setBackgroundColor(getResources().getColor(R.color.Red));
AddStaff.setTextColor(getResources().getColor(R.color.Black));
Toasty.error(createProject.this, "Error Logging time, Check your Internet Connection", Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
pd.cancel();
Toasty.error(createProject.this, "Time Log Failed", Toast.LENGTH_LONG).show();
}
}
);
int socketTimeout = 30000;
RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
postRequest.setRetryPolicy(policy);
queue.add(postRequest);
}