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

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

سلام 
ممنون میشم راهنمایی فرمایید 
من میخوام یه اسم مثلا علی رو بفرستم سمت سرور و اطلاعات علی مثل مشخصاتش رو بهم برگردونه 
در مورد کد های اینترفیس رتروفیت مشکل دارم 
لطفا در مورد این که چه کدی در قسمت اینترفیس بزنم که این کار رو انجلم بده راهنمایی کنید 
این کد اینترفیسی بود که استفاده کردم ولی جواب نداد:

  @FormUrlEncoded
    @POST("getname.php")
    Call<Modelinfo> getname(@Field("account") String account);

 

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


if($_SERVER['REQUEST_METHOD']=='POST'){


$account=$_POST['account'];


$sqlQ="select * from info where account='$account'";
$result=mysql_query($sqlQ);


$response["info"]=array();
$temp=array();

while($row=mysql_fetch_array($result)){
$temp["id"]=$row["id"];
$temp["name"]=$row["name"];
$temp["address"]=$row["address"];


array_push($response["info"],$temp);
}
echo json_encode($response);

mysql_close($con);
}

?>



 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 29 دقیقه قبل، mehdisamavat گفته است :

سلام 
ممنون میشم راهنمایی فرمایید 
من میخوام یه اسم مثلا علی رو بفرستم سمت سرور و اطلاعات علی مثل مشخصاتش رو بهم برگردونه 
در مورد کد های اینترفیس رتروفیت مشکل دارم 
لطفا در مورد این که چه کدی در قسمت اینترفیس بزنم که این کار رو انجلم بده راهنمایی کنید 
این کد اینترفیسی بود که استفاده کردم ولی جواب نداد:


  @FormUrlEncoded
    @POST("getname.php")
    Call<Modelinfo> getname(@Field("account") String account);

 

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



if($_SERVER['REQUEST_METHOD']=='POST'){


$account=$_POST['account'];


$sqlQ="select * from info where account='$account'";
$result=mysql_query($sqlQ);


$response["info"]=array();
$temp=array();

while($row=mysql_fetch_array($result)){
$temp["id"]=$row["id"];
$temp["name"]=$row["name"];
$temp["address"]=$row["address"];


array_push($response["info"],$temp);
}
echo json_encode($response);

mysql_close($con);
}

?>



 

 

اینجوری بنویسید کدتون رو :

 

 

 

public interface RegisterAPI {
@FormUrlEncoded
@POST("/RetrofitExample/insert.php")
public void insertUser(
        @Field("name") String name,

        Callback<Response> callback);
}

 

private void insertUser(){
    //Here we will handle the http request to insert user to mysql db
    //Creating a RestAdapter
    RestAdapter adapter = new RestAdapter.Builder()
            .setEndpoint(ROOT_URL) //Setting the Root URL
            .build(); //Finally building the adapter

    //Creating object for our interface
    RegisterAPI api = adapter.create(RegisterAPI.class);

    //Defining the method insertuser of our interface
    api.insertUser(

            //Passing the values by getting it from editTexts
            editTextName.getText().toString()

            //Creating an anonymous callback
            new Callback<Response>() {
                @Override
                public void success(Response result, Response response) {
                    //On success we will read the server's output using bufferedreader
                    //Creating a bufferedreader object
                    BufferedReader reader = null;

                    //An string to store output from the server
                    String output = "";

                    try {
                        //Initializing buffered reader
                        reader = new BufferedReader(new InputStreamReader(result.getBody().in()));

                        //Reading the output in the string
                        output = reader.readLine();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                    //Displaying the output as a toast
                    Toast.makeText(MainActivity.this, output, Toast.LENGTH_LONG).show();
                }

                @Override
                public void failure(RetrofitError error) {
                    //If any error occured displaying the error as toast
                    Toast.makeText(MainActivity.this, error.toString(),Toast.LENGTH_LONG).show();
                }
            }
    );
}

 

 

 

 

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

دوباره سلام 
من میخوام یک اسم بدم و یک ابجکت از مشخصات اون اسم رو تحویل بگیرم 

ایا این کد برای این کار درسته؟(چون اجرا کردم خطا داد)
 


    @FormUrlEncoded
    @POST("getname")
   void getname(@Field("account") String account, Callback<Modelinfo> callback);

 یه سوال هم برام پیش اومد اینکه چرا یه پارامتر callbackداریم میفرستیم؟(آیا این پارامتر خورش یه درخواسته؟)

 

کدهای جاوا رو هم  به این شکل نوشتم:

  Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(baseurl)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        APIsevice isevice = retrofit.create(APIsevice.class);
        isevice.getname(name, new Callback<Modelinfo>() {
            @Override
            public void onResponse(Call<Modelinfo> call, Response<Modelinfo> response) {
                Modelinfo modelinfo = response.body();
                modelList = modelinfo.getInfo();
                Toast.makeText(showpersonal.this, modelList.get(0).getName(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<Modelinfo> call, Throwable t) {

            }
        });

که اینجا یه کلاس مدل دارم به اسم Modelinfo که داخلش یه arraylist هست که مشخصات رو شامل میشه 
من ازین کلاس مدل و رتروفیت به صورت یکطرفه اطلاعات رو دریافت کردم با این کد

@GET("test1.php")
    Call<Modelinfo> getinfo();


اما برای ارسال و دریافت مشکل دارم
لطفا راهنمایی کنید کل جمعم صرف این مشکل شد :huh: 

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

دوباره سلام 
من میخوام یک اسم بدم و یک ابجکت از مشخصات اون اسم رو تحویل بگیرم 

ایا این کد برای این کار درسته؟(چون اجرا کردم خطا داد)
 


    @FormUrlEncoded
    @POST("getname")
   void getname(@Field("account") String account, Callback<Modelinfo> callback);

 یه سوال هم برام پیش اومد اینکه چرا یه پارامتر callbackداریم میفرستیم؟(آیا این پارامتر خورش یه درخواسته؟)

 

کدهای جاوا رو هم  به این شکل نوشتم:

  Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(baseurl)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        APIsevice isevice = retrofit.create(APIsevice.class);
        isevice.getname(name, new Callback<Modelinfo>() {
            @Override
            public void onResponse(Call<Modelinfo> call, Response<Modelinfo> response) {
                Modelinfo modelinfo = response.body();
                modelList = modelinfo.getInfo();
                Toast.makeText(showpersonal.this, modelList.get(0).getName(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<Modelinfo> call, Throwable t) {

            }
        });

که اینجا یه کلاس مدل دارم به اسم Modelinfo که داخلش یه arraylist هست که مشخصات رو شامل میشه 

و اینکه متن خطایی که بهم میده اینه:Service methods cannot return void.  ایا void رو حذف کنم؟

 

 

 

من ازین کلاس مدل و رتروفیت به صورت یکطرفه اطلاعات رو دریافت کردم با این کد

@GET("test1.php")
    Call<Modelinfo> getinfo();


اما برای ارسال و دریافت مشکل دارم
لطفا راهنمایی کنید کل جمعم صرف این مشکل شد :huh:  

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 14 ساعت قبل، mehdisamavat گفته است :

دوباره سلام 
من میخوام یک اسم بدم و یک ابجکت از مشخصات اون اسم رو تحویل بگیرم 

ایا این کد برای این کار درسته؟(چون اجرا کردم خطا داد)
 



    @FormUrlEncoded
    @POST("getname")
   void getname(@Field("account") String account, Callback<Modelinfo> callback);

 یه سوال هم برام پیش اومد اینکه چرا یه پارامتر callbackداریم میفرستیم؟(آیا این پارامتر خورش یه درخواسته؟)

 

کدهای جاوا رو هم  به این شکل نوشتم:


  Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(baseurl)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        APIsevice isevice = retrofit.create(APIsevice.class);
        isevice.getname(name, new Callback<Modelinfo>() {
            @Override
            public void onResponse(Call<Modelinfo> call, Response<Modelinfo> response) {
                Modelinfo modelinfo = response.body();
                modelList = modelinfo.getInfo();
                Toast.makeText(showpersonal.this, modelList.get(0).getName(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<Modelinfo> call, Throwable t) {

            }
        });

که اینجا یه کلاس مدل دارم به اسم Modelinfo که داخلش یه arraylist هست که مشخصات رو شامل میشه 

و اینکه متن خطایی که بهم میده اینه:Service methods cannot return void.  ایا void رو حذف کنم؟

 

 

 

من ازین کلاس مدل و رتروفیت به صورت یکطرفه اطلاعات رو دریافت کردم با این کد


@GET("test1.php")
    Call<Modelinfo> getinfo();


اما برای ارسال و دریافت مشکل دارم
لطفا راهنمایی کنید کل جمعم صرف این مشکل شد :huh:  

سلام روز بخیر 

اول اینکه احتیاجی نیست POST باشه requesteton بزارینش GET و اینکه نوع خروجی چرا void هستش؟ باید بشه ابجکتی که قرار هستش بگیرین از وب سرویس این یک نمونه از کد retrofit 2 هستش

 @GET("rest/productImageService/getproductimage/{imageName}")
    Call<ProductImageBean> getProductImages(@Path("imageName") String imagePath);

 

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

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

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

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

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

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

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

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

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

  • مطالب مشابه

    • توسط hami develop
      سلام خدمت دوستان عزیز.
      من یک اپلیکیشن اندروید درست کردم و از کلاس service ارث بری کردم و هر دقیقه یک بار یک وب سایت را چک میکند و در صورتی که اطلاعات جدیدی در این وب سایت وجود داشته باشد به من یک نوتیفیکیشن میدهد.
      آیا بهتر است که از کلاس Worker ارث بری کنم تا برنامه وظایفی را انجام دهد؟
      نکته: در واقع می‌خواهم برنامه برای مدت طولانی اجرا شود و هیچ گاه متوقف نشود.
      اگر کسی از دوستان تجربه کار با Worker را دارد لطفا بفرمایند که اختلاف
      Worker 
      و
      Service 
      دقیقا چی هست و برای برنامه ای که همیشه در بک گراند در حال اجرا است، کدامیک بهتر است؟
      سپاس بی کران.
    • توسط AliAmani
      سلام.وقت بخیر.من به یه ارور بر خوردم. دیباگر attach نمیشه.لطفا راهنماییم کنید.
      اندروید استودیو را حذف و دوباره نصب کردم.avd جدید ایجاد کردم.adb را kill و بعد start کردم.اما درست نشد.
      مشکل فقط در پروژه های اندروید است و در پروژه های فلاتر مشکلی نیست.
      debug.pdf
    • توسط 3245
      سلام
      من درحال اموزش اندروید هستم،
      برای این کار، ویدیوهای ساخت کتاب رو خریدم، اما چون اطلاعاتم خیلی کمه،درک مطالب توی این ویدئو سخته برام
      میخواستم اگرممکنه دوستان کلیپی پیشنهاد بدن که سبک تر باشه و بیشتر به مباحث پایه بپردازه، البته خیلی هم نخواد از صفر شروع کنه که خسته کننده میشه...
      طوری باشه پروژه محور باشه اما پروژه سبکی باشه.
       
      ممنون.
       
       
    • توسط Zeynab Tri
      سلام. دوستان بنده یک عدد تازه کار در برنامه نویسی اندروید هستم و نمیدونم این ارور رو چطور حل کنم. ممنون میشم اگر کسی میتونه من رو راهنمایی کنه.عکسش رو گذاشتم.

  • فایل

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