Pouriya Kordaki
6 سال پیش توسط Pouriya Kordaki مطرح شد
7 پاسخ

امولیتور اندروید نمیتواند از api پروژه لوکال استفاده کند

سلام
سرویس api را با فریم ورک لاراول ایجاد کردم و در لوکال با دستور artisan serv اجرا میکنم.
آدرس های api به صورت http://127.0.0.1:8000 هستند.
وقتی این api ها رو در postman قرار میدم، به خوبی جواب میگیرم. ولی وقتی در اپ react-native در امولیتور اندروید از اندروید استودیو میخوام اجرا کنم، نمیتونه کانکت بشه.
آیا خود امولیتور یک لوکال هاست مجزای خودش رو داره؟
لطفا راهنمایی کنید چطور میتونم از api های لوکال توی امولیتور اندروید استفاده کنم.


ثبت پرسش جدید
سید محمد امین عمرانی
@smae1993 6 سال پیش مطرح شد
2

سلام دوست من. آدرس localhost در امولیتور اندروید برابر 10.0.2.2 هست. یعنی شما به جای http://127.0.0.1:8000 کافیه بزنی http://10.0.2.2:8000


developer
تخصص : برنامه نویس
@developer 6 سال پیش مطرح شد
1

باید با آیپی سیستم آدرس ها رو فراخوانی کنید نه لوکال هاست یک یک چیزی اینطوری 192.168... توی تنظیمات شبکه تون هست میتونید ببنید


Pouriya Kordaki
@kordaki 6 سال پیش مطرح شد
0

@developer
ممکنه بیشتر راهنمایی کنین؟
این آدرس رو چطوری میتونم بدست بیارم؟ از کجا؟
وقتی که پروژه ران هست، نسبت به پورت و آدرسی که پروژه در حال اجراست، آی پی سیستم متفاوته؟
اگر یک نمونه بگین ممنون میشم


developer
تخصص : برنامه نویس
@developer 6 سال پیش مطرح شد
1

من با لینوکسم ویندوز رو دقیق نمیدونم چجوریه ولی فکر کنم این آدرس بدردتون بخوره
https://kb.netgear.com/20878/Finding-your-IP-address-without-using-the-command-prompt
در کل باید برید توی لیست کانکشن ها و اونی رو که باهاش وصلید رو باز کنید و آی پی رو بردارید و به جای لوکال هاست بذارید


Pouriya Kordaki
@kordaki 6 سال پیش مطرح شد
0

ممنون
از cmd با دستور ipconfig /all اطلاعات شبکه ویندوز نمایش داده میشه.
پایین اومدن اسکرول IPv4 همون آدرس اینترنتی لوکال هاست هست.


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 6 سال پیش مطرح شد
1

سلام
@pouriya.kordaki

توی آپاچی یه دامنه مجازی تعریف کنید
به فرض
native-project.dev یا native-app.prota
آموزش ساخت دامنه مجازی در آپاچی و زمپ رو بگردید ، پیدا کنید انجام بدید
احتمالا مشکلتون حل شه با دامنه مجازی .


سید محمد امین عمرانی
@smae1993 6 سال پیش مطرح شد
2

سلام دوست من. آدرس localhost در امولیتور اندروید برابر 10.0.2.2 هست. یعنی شما به جای http://127.0.0.1:8000 کافیه بزنی http://10.0.2.2:8000


احسان محمدی
تخصص : برنامه نویسی
@@akingarsuuuuuuu 3 سال پیش مطرح شد
0

سلام من هم با همچین مشکلی مواجه هستم.
من یک Node.js دارم که داخل ترمینال ران شده و مشکلی نیست .اما در داخل اندروید استودیو وقتی با استفاده از socket.io کدی میزنم که به سرور وصل شود . بعد اینکه برنامه رو داخل شبیه ساز اجرا میکنم بعدم میرم داخل ترمینال cmd . نزده که کسی connect شده.اما اما وقتی داخل مرورگر تست میکنم بعد میرم داخل cmd زده یکی connect شده .. اما در جاوا نمیزنه.. من کد ها رو میذارم تا نگاه کنید .. به نظرتون مشکل از کجاست؟

کد های جاوا:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.github.nkzawa.socketio.client.IO;
import com.github.nkzawa.socketio.client.Socket;
import java.net.URISyntaxException;

public class MainActivity extends AppCompatActivity {

private Socket msocket;{
    try {
    msocket= IO.socket("http://192.168.1.3:8000");
} catch (URISyntaxException e) {
    e.printStackTrace();

}
}

EditText edtmessage;
Button btnSend;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnSend=findViewById(R.id.btnSend);
    edtmessage=findViewById(R.id.edtmessage);
    msocket.connect();

    btnSend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String message=edtmessage.getText().toString();
            sendmessage(message);
            edtmessage.setText("");
        }
    });

}

private void sendmessage(String message){
    msocket.emit("message",message);

}

@Override
protected void onDestroy() {
    super.onDestroy();
    msocket.disconnect();
}

}

ممنون میشم راهنمایی کنید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام