بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

json

مدیریت گفتگو
reza 10 سال پیش
آخرین تغییر: 10 سال پیش

 با سلام و احترام من برنامه جیسون رو می خواستم اجرا کنم جواب نگرفتم و در حقیقت می خوام دیتا بیس php  رو به اندروید وصل کنم که دیدم باید از جیسون استفاده کنم اولا اگه یه راه ایمن تر و بهتری هست بفرمایید و الا من با این برنامه جیسون جواب نگرفتم لطف کنید برنامه مو ببینید . ممنون . از برنامه خود آقای آقاجانی هم استفاده کردم اونم جواب نداد !!!!این برنامه سمت سرورم :

 <?php 



$array=array();

$array[]=2;

$array[]=3;

$array[]=4;

$array[6]=2;

$array["hello"]=2;

$array["hello2"]="some string";

$anotherArray=array();

for($i=0;$i<10;$i++){

$anotherArray[]=$i;

}

$array["Another Array"]=array(

"Test1"=>2,

"Test2"=>"HEllo",

3=>"my string",

4=>array(

"a"=>"abcd",

"b"=>2,

),

"ForLoop"=>$anotherArray,

);

echo json_encode($array);

print_r($array);



?>

 
 package ir.smartcod.and;

import ir.smartcod.and.R.string;
import java.io.InputStream;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class AndActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        HttpClient client = new DefaultHttpClient();
        HttpGet method = new HttpGet("http://192.168.1.4/it/business%20_center/android/and1.php");
        try {
            HttpResponse response = client.execute(method);
            int code = response.getStatusLine().getStatusCode();
            Log.i("LOG", "code" + code);
            InputStream stream = response.getEntity().getContent();
            string result = inputstreamToString(stream);
            Log.i("LOG", "result" + result);

        }
        catch (ClientProtocolException e) {

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

        }

    }


    private string inputstreamToString(InputStream stream) {
        // TODO Auto-generated method stub
        return null;
    }
}

 

نظرات

Criss 10 سال پیش
and1.php روی مرورگر به شما خروجی میده ؟ ایپی لوکال شما اخرش 4 هست ؟ مطمئن هستید امولاتور رو از لیست دیوایس ها انتخاب کردید که لاگ به شما نمایش داده بشه ؟
کاشی زاده 10 سال پیش
برای اتصال به اینترنت و خواندن اطلاعات در اندروید 2.1 به بعد باید از ترد جداگانه ای استفاده کنید . مطالعه آموزش ماژول وب سرویس برای شما مفید خواهد بود .
reza 10 سال پیش
فایل رو اجرا کردم بازم جواب نداد
reza 10 سال پیش
فایل رو اجرا کردم بازم جواب نداد
کاشی زاده 10 سال پیش
دوست گرامی ، من کد های php شما در همینجا رو مرتب کردم ، شما در تولید JSON خطا دارید ، دقیقا این مشکل به خاطر عدم مطالعه دقیق آموزش هاست .
کاشی زاده 10 سال پیش
JSON شما شامل کد های زائد است ، دستور print_r($array) را حذف کنید .
reza 10 سال پیش
با تشکر . مشکل حل شد .ممنون
silent scream 10 سال پیش
دو بار json را در خروجی اورده اید با دو دستور echo json_encode($array); print_r($array); یکی را حذف کنید
reza 10 سال پیش
ممنون .مشکل حل شد

پاسخ‌ها 7

reza 10 سال پیش

 سلام. ممنون . بله  روی مرورگر بهم جواب می ده . بله آی پی لوکال من 192.168.1.4 بود اون موقع . بله امولاتور رو از قسمت  avd mannager  انتخاب کردم و  start  رو زدم  یه بار هم  run as anrroid  رو زدم اما متاسفانه خروجی ندارم !!!

نظرات

Criss 10 سال پیش
احتمالا امولاتور شما دسترسی به اینترنت رو نداره ! حداقل code : 200 رو باید توی لاگ نمایش بده ، توی مرورگر امولاتور چند لینک رو تست کنید
reza 10 سال پیش

می خواستم ببینم امکانش هست بصورت   team viewer  برنامه مو چک کنید .ممنون میشم

نظرات

احمد 10 سال پیش
داداش لازم نیست برای هر چیزی که می نویبسی پاسخ درج کنی نظر بزار کد ها را در پاسخ ها بزار
احمد 10 سال پیش
فایل php فقط جیسون میده مطمئن هستی که کاراکتر دیگه ای باهاش نمیاد
reza 10 سال پیش
سلام .اره مطمئنم
reza 10 سال پیش
سلام .اره مطمئنم ممنون . اخه من بلد نیستم ایجا چطورییه دقیقا . می تونید کدمو چک کنید لطفا؟!
احمد 10 سال پیش
print_r($array); نباید باشه جیسون را به هم میریزه اگه کامنت نباشه
reza 10 سال پیش
برش داشتم اما بازم جواب نمی ده اینم عکس از صفحه ام
reza 10 سال پیش
میشه با team viewer چک کرد؟!کسی هست لطفا؟
alfredo 10 سال پیش
دوست عزیز نیازی به تیم ویور نیست. شما پروژه رو توی یک فایل زیپ بذار آپلودش کن بذار اینجا هرکی تونست دانلود میکنه بررسی میکنه. ایشالا حل میشه مشکلت.
reza 10 سال پیش
باشه ممنون اما فایل زیپو کجا باید بذارم تو گزینه ها نیست !!! فقط آپلود عکسه
raeesi 10 سال پیش
دوست خوبم موقعی که می خوای کدهاتو بزاری توی سایت روی گزین source code کلیک کنید بعد کدهاتونو داخلش قرار بدین تا هم خواناتر بشه وهم این که قوانین سایت رو رعایت کرده باشین
reza 10 سال پیش
ممنون .قرار دادم
reza 10 سال پیش

 package ir.smartcod.and;

import ir.smartcod.and.R.string;
import java.io.InputStream;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class AndActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        HttpClient client = new DefaultHttpClient();
        HttpGet method = new HttpGet("http://192.168.1.4/it/business%20_center/android/and1.php");
        try {
            HttpResponse response = client.execute(method);
            int code = response.getStatusLine().getStatusCode();
            Log.i("LOG", "code" + code);
            InputStream stream = response.getEntity().getContent();
            string result = inputstreamToString(stream);
            Log.i("LOG", "result" + result);

        }
        catch (ClientProtocolException e) {

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

        }

    }


    private string inputstreamToString(InputStream stream) {
        // TODO Auto-generated method stub
        return null;
    }
}
 <?php 

$array=array();
$array[]=2;
$array[]=3;
$array[]=4;
$array[6]=2;
$array["hello"]=2;
$array["hello2"]="some string";
$anotherArray=array();
for($i=0;$i<10;$i++){
	$anotherArray[]=$i;
}
$array["Another Array"]=array(
"Test1"=>2,
"Test2"=>"HEllo",
3=>"my string",
4=>array(
"a"=>"abcd",
"b"=>2,
),
"ForLoop"=>$anotherArray,
);
echo json_encode($array);


?>

نظرات

hossein_hr10 10 سال پیش
سلام دوست عزیز ، این کد هایی که الان تو این قسمت قرار دادین داخل ایکلیپس از شما ایراد نمیگیره ؟ چون من کپی کردم که تستش کنم چند جاش اشکال syntax داشت ، در این تابع inputstreamToString که تعریف کردین خروجی رو گذاشتین string حرف s باید با حروف بزرگ باشه String ، در این جا هم همینطور که این متغیر رو تعریف کردین string result حرف s باید با حروف بزرگ باشه String ، اگر داخل برنامه شما هم واقعا اینطور هست تغییر بدین ، حالا خطاها رو برطرف کنم برنامه رو چک میکنم
hossein_hr10 10 سال پیش
بعد اینکه تابع inputstreamToString که نوشتین چرا دستوری داخلش نیست حالا نمیدونم واقعا ننوشتین یا در اینجا نیاوردین ، به هر حال من برنامه شما رو تست کردم و خرو جی گرفتم فایل php شما مشکلی نداره به شرط اینکه در موقغ ذخیره کردن با فرمت ANSI ذخیره کرده باشین نه نوع UTF-8 ، من کد درست رو در پاسخ برای شما قرار میدم من با این کد تونستم جیسونی که در فایل php نوشتیم رو در logcat خودم ببینم
reza 10 سال پیش
ممنون. من بازم مشکل دارم میشه لطف کنید فایل zip اشو برام بفرستید ببینم مشکلم از کجاست .ممنون reza_johari633@yahoo.com
reza 10 سال پیش
من یه همچین error ای دارم و تو قسمت avd mannager وقتی GPU emulation رو فعال می کنم دیگه اصلا برنامه ام اجرا نمی شه اما وقتی برش می دارم این خطا رو می ده !! خلاصه الان یک یه چند مدته گیرش افتادم اگه یه نفر لطف کنه با تیم ویور چک کنه ممنون میشم چون ظاهرا همه چی درسته اما اجرا نمی شه
hossein_hr10 10 سال پیش

اول اینکه permission اینترنت رو در AndroidManifest چک کنین که یادتون نرفته باشه 

 public class TestForSiteActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        HttpClient client = new DefaultHttpClient();
        HttpGet method = new HttpGet("http://192.168.42.212/site-test1/test.php");
        try {
            HttpResponse response = client.execute(method);
            int code = response.getStatusLine().getStatusCode();
            Log.i("LOG", "code" + code);
            InputStream stream = response.getEntity().getContent();
            String result = convertInputStreamToString(stream);
            Log.i("LOG", "result" + result);

        }
        catch (ClientProtocolException e) {

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

        }

    }


    private static String convertInputStreamToString(InputStream inputStream) {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            StringBuilder builder = new StringBuilder();
            while ((line = reader.readLine()) != null)
            {
                builder.append(line);
            }
            return builder.toString();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

}

نظرات

reza 10 سال پیش

نظرات

میرحسین 10 سال پیش
ارورهایی که در لاگ شما نمایش داده میشود ناقص میباشد و چیزی اصلا مشخص نیست از ترد هم در اتصال به سرور استفاده نمایید
reza 10 سال پیش
سلام . من دقیقا کد ایشون hossein_hr10 که بدون ترد بود رو استفاده کردم خودش بدون ترد جواب گرفتن اما من نه !!!! و این که استفاده از ترد رو تو جاوا بلد نیستم !. بازم ممنون از جوابتون
reza 10 سال پیش

 اینم عکس عدم اجرای کد شما 

نظرات

کاشی زاده 10 سال پیش
مطالعه این لینک برای درک بهتر خطایابی برای شما مفید خواهد بود
reza 10 سال پیش
جناب کاشی زاده چرا هی منو پاس می دید ! شما که ماشالله واردی و استاد و من ارور رو برای شما فرستادم ! و این پروژه ای هست که خود شما زحمت کشیدید برای من ارسال کردید !!! من دنبال حل مشکلم هستم شما که خودتون استاد هستید من ارورمو برای شما ارسال کردم خیلی مشخص !!!
کاشی زاده 10 سال پیش
دوست گرامی ، شما هنوز اطلاعی دقیقی از مشکل پروژه ندارید . هنوز نحوه خطایابی پروژه را به خوبی درک نکرده اید و Log که قرار داده اید ارتباطی با خطای سورس و یا لاجیک ندارد ، بهتر است اول ویدئو را مطالعه کنید تا فرق خطا و verbose را متوجه شوید بعد برید به سراغ اینکه آیا مشکل شما از سورس کدهاست یا از شبیه ساز !!!
reza 10 سال پیش
خب من اگه اطلاع داشتم که مزاحم شما نمی شدم که !!!! شما که تفاوتشو می دونید بفرمایید چکار کنم ! من فک می کنم مشکلم از شبیه ساز هست چون کد خودم و کد فیلم و کد ارسالی شما رو استفاده کردم اما جواب نگرفتم ! خب اما مشکل چیه !!! شما که اجرا کردید و جواب گرفتید یه پک کنید کد منو فک می کنم الان جواب گرفته بودم تا الان یک ماه بشینم چت کنم !!!!!
کاشی زاده 10 سال پیش
شما وقتی اطلاع ندارید باید ویدئو ها و توضیحاتی بنده و یا دیگر دوستان براتون قرار میدیم را مطالعه کنید، مشکل شما از عدم مطالعه دقیق آموزشهاست ، در بالاتر یکی از مشکلات شما رو من پیدا کردم که هیچ ارتباطی با سورس کلاینت ندارد و دقیقا مشکل به سرور ساید بر میگردد . چرا تا به این لحظه کسی متوجه این خطا نبود ؟ به خاطر این که شما تاپیکتون کثیف بود و کد هاتون رو به صورت مرتب شده نمایش نداده بودید .
reza 10 سال پیش
جناب کاشی زاده ....من کد شما که زحمت کشیدید فرستادید رو اجرا کردم !!و این که در قسمت اضافه کردن نظر هیچ جایی نیست که من فایل یا عکس بفرستم بجز در قسمت درج پاسخ سایت !!! که این مشکل من نیست مشکل سایت شماست !
کاشی زاده 10 سال پیش
نیازی به انجام کار عجیب و یا امکانات عجیبی نیست ، خطاهاتون رو به صورت متنی و نه تصویری داخل تگ سورس مثل کد های برنامه نویسی که دوستان قرار دادند ، میتونید ارسال کنید . الان هم کامنت های جدیدی که در سوال اول قرار دادم را مطالعه کنید .
reza 10 سال پیش

 09-09 05:00:44.286: W/System.err(656): java.io.FileNotFoundException: /mnt/sdcard/testWebserviceModule/cache/90E8EEF113AF575AAAD9796CBEC8E5E4FD61F4AA.dat: open failed: ENOENT (No such file or directory)
09-09 05:00:44.376: W/System.err(656): 	at libcore.io.IoBridge.open(IoBridge.java:406)
09-09 05:00:44.426: W/System.err(656): 	at java.io.FileInputStream.<init>(FileInputStream.java:78)
09-09 05:00:44.426: W/System.err(656): 	at java.io.FileInputStream.<init>(FileInputStream.java:105)
09-09 05:00:44.426: W/System.err(656): 	at com.uncocoder.course.app.webservice_module.ModuleWebservice.readFromCache(ModuleWebservice.java:280)
09-09 05:00:44.426: W/System.err(656): 	at com.uncocoder.course.app.webservice_module.ModuleWebservice.read(ModuleWebservice.java:113)
09-09 05:00:44.426: W/System.err(656): 	at com.uncocoder.course.app.webservice_module.TestModuleWebservice.test1(TestModuleWebservice.java:51)
09-09 05:00:44.436: W/System.err(656): 	at com.uncocoder.course.app.webservice_module.G.onCreate(G.java:25)
09-09 05:00:44.436: W/System.err(656): 	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
09-09 05:00:44.436: W/System.err(656): 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3954)
09-09 05:00:44.436: W/System.err(656): 	at android.app.ActivityThread.access$1300(ActivityThread.java:123)
09-09 05:00:44.436: W/System.err(656): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
09-09 05:00:44.436: W/System.err(656): 	at android.os.Handler.dispatchMessage(Handler.java:99)
09-09 05:00:44.466: I/dalvikvm(656): threadid=3: reacting to signal 3
09-09 05:00:44.586: W/System.err(656): 	at android.os.Looper.loop(Looper.java:137)
09-09 05:00:44.586: W/System.err(656): 	at android.app.ActivityThread.main(ActivityThread.java:4424)
09-09 05:00:44.586: W/System.err(656): 	at java.lang.reflect.Method.invokeNative(Native Method)
09-09 05:00:44.586: W/System.err(656): 	at java.lang.reflect.Method.invoke(Method.java:511)
09-09 05:00:44.586: W/System.err(656): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-09 05:00:44.586: W/System.err(656): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-09 05:00:44.586: W/System.err(656): 	at dalvik.system.NativeStart.main(Native Method)
09-09 05:00:44.586: W/System.err(656): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
09-09 05:00:44.586: W/System.err(656): 	at libcore.io.Posix.open(Native Method)
09-09 05:00:44.586: W/System.err(656): 	at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
09-09 05:00:44.586: W/System.err(656): 	at libcore.io.IoBridge.open(IoBridge.java:390)
09-09 05:00:44.586: W/System.err(656): 	... 18 more
09-09 05:00:44.607: I/dalvikvm(656): Wrote stack traces to '/data/anr/traces.txt'
09-09 05:00:44.806: I/LOG(656): Webservice Data: 
09-09 05:00:44.836: D/gralloc_goldfish(656): Emulator without GPU emulation detected.

 

 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .