استفاده از volly برای ارسال داده
سلام
من میخوام یک arraylist از اطلاعات رو که مثلا حداکثر ۸۰ رکورد هست شامل نام نام خانوادگی تاریخ و .... رو به صفحه php ارسال کنم . سریع میرم سر اصل مطلب
با async و namevaluepair ارسال کردم با روش استاد ولی مشکلی که هست اطلاعات روی سرعت های پایین e , G و حتی h+ اطلاعات درست ارسال نمیشه و کم زیاد میشینه توی دیتابیس . ازونجایی که دوستان پیشنهاد کردن با کتابخانه volly کار کنم ! امروز کامل روش وقت گذاشتم و به نتایجی رسیدم . متاسفانه توسط volly هم داده ها روی لوکال خوب کار میکنه ولی روی هاست واقعی با خطا و کم و کاستی ارسال میشود ... واقعا خسته شدم خواهشا خواهشا دوستان همراهی کنن تا مشکل من رد شه ... من خیلی از کد رو نوشتم که خیلی به درد دیگر دوستان هم میخوره ... کد من با volly برای ارسال کار میکنه ولی مسله اینه که زمانی که میندازم دستور ارسالش رو توی حلقه for و میخوام که تک تک خونه های آر ایه رو بفرسته سمت سرور همش ارسال میشه از سمت اندروید ولی سمت سرور مثلا یکی دوتاش گاهی درج نمیشه میشه ! و و و
توی اون بخش ارسال پارامترgetparam فقط میشه hashmap ارسال کرد .. راهی نیست که بشه یک jsonobject رو که حاوی یک آرایه پرزرق و برقه یکجا ارسال کرد که نخوام از حلقه for استفاده کنم برای ارسال ؟ این سوال خیلی کلیدیه لطفا پاسخ بدید ؟
سورس کد رو اینجا گذاشتم که بهتر متوجه بشید .
کد php
<?php
header('Content-Type: text/html; charset=utf-8');
//header('Content-type: application/json');
require_once('database.php');
$connection =database::connectToDatabase();
if($_SERVER['REQUEST_METHOD']=='POST'){
// receiving the post params
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
mysqli_query($connection, "INSERT INTO test_volly VALUES (0,'$name','$email','$password')");
mysqli_close($connection);
}
سورس اندروید :
public class ActivityMain extends Activity {
//@url = Url for get json Object
// String urlsend = "http://192.168.1.105/knc/sabtvolly.php";
String urlsend = "http://www.knc-app.ir/knc/sabtvolly.php";
public static ArrayList<StructSend> SefareshTemp = new ArrayList<StructSend>();
public static int i, j = -1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SefareshTemp.clear();
//----------------------------------------
//----------------------------------------
final ProgressDialog pDialog = new ProgressDialog(this);
pDialog.setMessage("Loading...");
// pDialog.show();
//------------------------------Send Data
final StringRequest SendReq = new StringRequest(Method.POST,
urlsend, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("hosein", "" + response.toString());
// hideDialog();
pDialog.hide();
try {
JSONObject jObj = new JSONObject(response);
}
catch (JSONException e) {
// JSON error
e.printStackTrace();
// Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_LONG).show();
pDialog.hide();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
j++;
Log.i("hosein", "j is : " + j);
// Posting parameters to login url
Map<String, String> params = new HashMap<String, String>();
params.put("name", SefareshTemp.get(j).name.toString());
params.put("email", SefareshTemp.get(j).email.toString());
params.put("password", SefareshTemp.get(j).password.toString());
return params;
}
};
//--------------------------------------------------------------------------------------
findViewById(R.id.bt).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
pDialog.show();
for (i = 0; i < 200; i++)
{
StructSend node = new StructSend();
node.name = "hosein" + i;
node.email = "email" + i;
node.password = "password" + i;
SefareshTemp.add(node);
}
j = -1;
for (int k = 0; k < 200; k++)
{
//Log.i("hosein", "" + SefareshTemp.get(j).name);
G.getInstance().addToRequestQueue(SendReq);
}
}
});
من موفق شدم داده ها رو ارسال کنم توسط والی به صورت آرایه ولی مشکلی که باز هست اینه که اطلاعات بعضا دوبار ارسال و درج توی دیتابیس میشوند ولی رو لوکال درست کار میکنه ... به زودی آموزش و سورسش رو میزارم اینجا
سلام
علت این خطا چی می تونه باشه
E/Volley: [196] BasicNetwork.performRequest: Unexpected response code 500 for site adres
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .