راکت
حل شده

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

7 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

7
سید محمد امین عمرانی
سید محمد امین عمرانی
@smae1993
بهترین پاسخ

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

developer
developer
@developer

تخصص: برنامه نویس

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

Pouriya Kordaki
Pouriya Kordaki
@kordaki

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

شاید پاسخ شما همین‌جا باشد

developer
developer
@developer

تخصص: برنامه نویس

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

Pouriya Kordaki
Pouriya Kordaki
@kordaki

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

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@pouriya.kordaki

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

احسان محمدی
احسان محمدی
@@akingarsuuuuuuu

تخصص: برنامه نویسی

سلام من هم با همچین مشکلی مواجه هستم.
من یک 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();
}

}

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

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

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