رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام دوستان

من میخام با متد پست post تعدادی داده بفرستم ب سرور و میخام ریسپانسی که برام برمیگردونه یک json array باشه نه یک string.

این داده هایی که باید فرستاده باشن باید به صورت json object باشن؟؟

کسی تا حالا کار کرده ک راهنمایی کنه؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من با hash mao دیتا رو پست میکنم اما هیچی پست نمیشه اونور

اینا کدهای من هستن

کجاها


import android.app.ProgressDialog;
import android.content.Context;
import android.widget.Toast;

import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Lecturer {

    Context context;
    ProgressDialog progressDialog;
    String name;
    String lastname;
    String star_date;
    String end_date;


    public LecturerReport(Context context,final String name, final String lastname,
                          final String star_date, final String end_date ){

        this.context=context;
        this.name=name;
        this.lastname=lastname;
        this.star_date=star_date;
        this.end_date=end_date;
    }

    public void  getpost(final LecturerReport.onpost onpost)
    {

       final String url="http://localhost/local/user_report.php";
        
        

        progressDialog=new ProgressDialog(context);
        progressDialog.setMessage("در حال دریافت اطلاعات از سرور...");
        progressDialog.show();

        JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(Request.Method.POST, url, null, new Response.Listener<JSONArray>() {

            @Override
            public void onResponse(JSONArray response) {

        
                if (response.length()==0){
                    Toast.makeText(context,"empty",Toast.LENGTH_LONG).show();
                    progressDialog.dismiss();
                }

                List<GetSetReportUser> data=new ArrayList<>();

                for (int i=0;i<response.length();i++){

                    //get data

                        progressDialog.dismiss();
                    }

                    catch (JSONException e) {
                        e.printStackTrace();
                    }

                    data.add(getSetReportUser);
                }
                onpost.onpost(data);

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                progressDialog.dismiss();

                android.support.v7.app.AlertDialog.Builder alertDialogBuilder=new  android.support.v7.app.AlertDialog.Builder(context);
                alertDialogBuilder.setMessage("خطا در برقراری ارتباط...");
                alertDialogBuilder.show();
                Toast.makeText(context, error+"", Toast.LENGTH_SHORT).show();

            }
        })
        {

            @Override
            protected Map<String,String> getParams()  {

                HashMap<String,String> hashMap=new HashMap<>();
                hashMap.put("name",name);
                hashMap.put("lastname",lastname);
                hashMap.put("star_date",star_date);
                hashMap.put("end_date",end_date);
                return hashMap;
            }
        };

        jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(10000,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

        Volley.newRequestQueue(context).add(jsonArrayRequest);
    }

    public  interface onpost
    {
        void onpost(List<GetSetReportUser> data);
    }

}

مشکل داره؟؟

از سمت اندروید اروری نداره، فقط اینکه داده های هش مپ پست نمیشن به سرور

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دو مورد:

1- حتما دیتاهای ورودی رو echo بگیرید که آیا دیتا ارسال شدهاست یا خیر

2-آیا Headerنیاز ندارد برای سمت سرور ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دیتاها ارسال نمیشن ب سرور.

 

این کدهای سمت سروره

<?php

 include "config.php";
 
  
 $name=$_POST['name'];
 $lastname=$_POST['lastname'];
 $star_date=$_POST['star_date'];
 $end_date=$_POST['end_date'];
 
   mysqli_query($con,"SET CHARSET UTF8");
    
    	$sql = 'SELECT * FROM view_user_search  WHERE name LIKE '%."$name".%'  AND lastname
        LIKE '%."$lastname".%' AND date BETWEEN '$star_date' AND '$end_date' ';

	 file_put_contents('a_test.txt',$sql); 
               
 $result=$con->query($sql);
 $array_list=array();
 $array=$result->fetch_all(MYSQLI_ASSOC);
 echo json_encode($array);
         
 ?>

به هدر نیازی ندارم.

اینم محتوای کوئری ک نشون میده مقادیر پست شده خالی هستن.

SELECT * FROM view_user_search  WHERE name LIKE '%%'  AND lastname LIKE '%%' AND date BETWEEN '' AND ''

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آدرس رو اشتباه نوشتید

"http://localhost

نباید localhost بزارید.. باید بدین صورت بزارید

 final String url="http://127.0.0.1/local/user_report.php";
لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط VahidNZ
      با سلام خدمت همه دوستان و اساتید

      من یه برنامه دارم که با استفاده از کتابخانه Volley یکسری textview و imageview و به نمایش در میارم 
      الان نیاز دارم یک ستون به دیتابیس اضافه کنم ولینک ویدئو قرار بدم و با استفاده از Videoview نمایش بدم 

      ولی متاسفانه هرچی آموزش میبینم مخصوص استفاده کردن به صورت مشخص از یک URL و یا استفاده داخلی خود گوشی هست 

      اگر ممکن هست راهنمایی بفرمایید که مقادیر JSON که میگیرم و برای ویدئو به چه صورتی باید پیاده سازی کنم 

      با تشکر
    • توسط hewillcome
      باعرض سلام خدمت همه ی اساتید محترم.
      بنده قصد ارسال جیسون به سمت سرور را داشتم. برای ارتباط با سرور بنده از کتابخانه ی Volley استفاده میکنم. نحوه ی ارسال String را بلد هستم اما جیسون را نه متاسفانه.
      ممنون میشم از دوستان اگر کسی می تواند بنده را راهنمایی کند. با سپاس فراوان.
    • توسط khosro
      سلام ،،این  کد کار میکنه ینی اینکه درخواست رو میفرسته به سرور اما متاسفانه اون string  رو نمیفرسته نمی دونم چرا
       
       
      JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(Request.Method.GET, url,null, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { for(int i = 0; i < response.length(); i++) { try { Toast.makeText(getApplicationContext(),"ok",Toast.LENGTH_LONG).show(); String id=response.getJSONObject(i).getString("id"); String name = response.getJSONObject(i).getString("name"); String problem=response.getJSONObject(i).getString("problem"); String javab=response.getJSONObject(i).getString("javab"); if (javab.isEmpty()){ data.add(new Data(name,problem,R.drawable.user_avatar,"پشتیبانی","در انتظار پاسخ از پشتیبانی...",R.drawable.support,id)); }else { data.add(new Data(name,problem,R.drawable.user_avatar,"پشتیبانی",javab,R.drawable.support,id)); } recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(SupportActivity.this)); if (!data.isEmpty()){ progressDialog.dismiss(); } } catch (JSONException e) { e.printStackTrace(); progressDialog.dismiss(); } } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_LONG).show(); progressDialog.dismiss(); } }) { @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>(); params.put("id",name); return params; } }; requestQueue.add(jsonArrayRequest);  
    • توسط MaHdI-09
      سلام.چطوری میشه از volley تو  rxandroid
      (rxjava) استفاده کرد..؟
      لطفا خیلی پایه ای توضیح بدید.ممنون 
    • توسط taleb
      سلام دوستان
      مخواستم یه کلاس بنویسم که یک فایل و یه سری داده ی رشته ای رو به وب سرویس ارسال کنم 
      اینکه یک فایل رو به سرور آپلود کنم مشکلی نیس ولی اینکه همراه اون یه سری اطلاعات بفرستم نمیدونم چجوریه
      لطفا اگه ممکنه یه راهنمایی کلی کنید ممنونم
  • فایل

×
×
  • اضافه کردن...