Cách kết nối với máy chủ web http: // localhost của tôi từ Trình giả lập Android trong Eclipse


485

Tôi có thể làm gì trong trình giả lập Android của Eclipse để kết nối nó với trang máy chủ web localhost của tôi tại http://localhosthoặc http://127.0.0.1?

Tôi đã thử nó, nhưng trình giả lập vẫn nhận yêu cầu của tôi như tìm kiếm Google cho localhost hoặc tệ hơn là nó không tìm thấy trang trong khi máy chủ web của tôi vẫn chạy bình thường.


Câu hỏi này là về Android Emulator và có các giải pháp áp dụng đối với trường hợp đó một mình . Nếu bạn gặp phải vấn đề này khi sử dụng thiết bị Android vật lý , vui lòng xem thay vì stackoverflow.com/questions/4779963/ mẹo
Chris Stratton

Câu trả lời:


819

Localhost đề cập đến thiết bị mà mã đang chạy, trong trường hợp này là trình giả lập.

Nếu bạn muốn tham khảo máy tính đang chạy trình giả lập Android, thay vào đó hãy sử dụng địa chỉ IP 10.0.2.2 .

nhập mô tả hình ảnh ở đây

Bạn có thể đọc thêm từ đây .


12
Tại sao đề cập đến câu hỏi khác? chỉ cần thêm Trình kết nối mạng giả lập Android
Marvin Emil Brach

Cảm ơn đã chỉ ra các liên kết ra. Tôi đoán nó không có ở đó khi câu trả lời được đăng.
Pappachan nguyên thủy

1
@primpap: Tôi có thể sử dụng tên máy thay vì địa chỉ IP không ??
KJEjava48

@primpap điều này không hoạt động với gỡ lỗi di động. Có cái nào khác không? Hoặc tôi đang làm sai ở đâu đó vì 10.0.2.2 đang hoạt động trên trình giả lập nhưng không hoạt động khi tôi kết nối di động để gỡ lỗi usb. ?
Jawad Zeb

5
Giải pháp này chỉ hoạt động trên các trình giả lập , như được hỏi trong câu hỏi cụ thể ở đây. Những người gỡ lỗi trên thiết bị Android vật lý sẽ phải sử dụng tên hoặc địa chỉ IP thực của máy chủ, họ không thể sử dụng bí danh chỉ dành cho trình giả lập đặc biệt này. Câu trả lời này là tốt - nhưng độc giả cần phải cẩn thận rằng tình huống của họ là một trong đó nó được áp dụng .
Chris Stratton

156

Sử dụng 10.0.2.2cho AVD mặc định và 10.0.3.2cho.


Vì vậy, chúng tôi chỉ cần thêm 10.0.3.2vào tập tin máy chủ của chúng tôi?
ayjay

29

Tôi đã sử dụng 10.0.2.2 thành công trên máy tính ở nhà, nhưng tại nơi làm việc, nó không hoạt động. Sau nhiều giờ bị lừa, tôi đã tạo một phiên bản giả lập mới bằng trình quản lý Thiết bị ảo Android (AVD) và cuối cùng là 10.0.2.2 đã hoạt động.

Tôi không biết điều gì sai với phiên bản trình giả lập khác (nền tảng là như nhau), nhưng nếu bạn thấy 10.0.2.2 không hoạt động, hãy thử tạo một phiên bản trình giả lập mới.


4
Thật không may, nó không hoạt động với tôi ngay cả sau khi tạo phiên bản AVD mới. Bạn có đề nghị gì? Để cài đặt lại mọi thứ?
Vlado Pandžić

23

Hãy thử số cổng của bạn http://10.0.2.2:8080/ở đâu 8080. Nó hoạt động hoàn hảo. Nếu bạn thử 10.0.2.2nó sẽ không hoạt động. Bạn cần thêm số cổng vào nó. Ngoài ra nếu Microsoft IIS đã được cài đặt, hãy thử tắt tính năng đó khỏi bảng điều khiển (nếu sử dụng bất kỳ hệ điều hành windows nào) và sau đó thử như đã nêu ở trên.


2
Nếu các trang được lưu trữ trên IIS thì sao?
maracuja-

@Marimba chỉ cần tìm ra máy chủ IIS của bạn phục vụ trên cổng nào, sau đó truy cập 10.0.2.2:your_iis_port
StoneLam

đây là một chuỗi hoàn chỉnh và chỉ hoạt động trên trình giả lập Android 8.1 của tôi
CodeToLife

10

theo tài liệu:

10.0.2.2 - Bí danh đặc biệt cho giao diện loopback máy chủ của bạn (ví dụ: 127.0.0.1 trên máy phát triển của bạn)

kiểm tra Trình mô phỏng mạng để biết thêm các thủ thuật trên mạng trình giả lập.



3

Tôi cần phải tìm ra địa chỉ IP máy chủ lưu trữ cho trình giả lập "Nox App Player". Đây là cách tôi tìm ra nó 172.17.100.2.

  1. Trình giả lập thiết bị đầu cuối Android được cài đặt từ cửa hàng ứng dụng
  2. ip link showLệnh phát hành để hiển thị tất cả các giao diện mạng. Quan tâm đặc biệt là giao diện eth1
  3. ifconfig eth1Lệnh phát hành , hiển thị net là172.17.100.15/255.255.255.0
  4. Bắt đầu ping địa chỉ bắt đầu từ 172.17.100.1, nhận được một cú đánh vào `172.17.100.2 '. Không chắc tường lửa có can thiệp hay không nhưng trong trường hợp của tôi thì không.

Có lẽ điều này có thể giúp người khác tìm ra nó cho các trình giả lập khác.


1

Nếu bạn đang ở trong windows, bạn có thể vào hệ thống simbol và viết ipconfig và kiểm tra xem ip nào được gán cho máy của bạn.


Điều này là không cần thiết khi gỡ lỗi từ trình giả lập, vì bạn có thể sử dụng bí danh đặc biệt cho giao diện loopback máy chủ được trích dẫn trong các câu trả lời khác. Tuy nhiên, nếu gỡ lỗi từ thiết bị Android vật lý, thì có, bạn cần xác định địa chỉ thực tế của máy chủ thử nghiệm của mình và sử dụng địa chỉ đó.
Chris Stratton

1

Bạn thực sự có thể sử dụng localhost:8000để kết nối với localhost của máy bằng cách chạy lệnh bên dưới mỗi lần khi bạn chạy trình giả lập (chỉ được thử nghiệm trên máy Mac):

adb reverse tcp:8000 tcp:8000

Chỉ cần đặt nó vào thiết bị đầu cuối Android Studio.

Về cơ bản, nó thiết lập một proxy ngược trong đó một máy chủ http đang chạy trên điện thoại của bạn chấp nhận các kết nối trên một cổng và nối chúng với máy tính của bạn hoặc ngược lại.


0

Tôi không biết, có thể chủ đề này đã được giải quyết, nhưng khi tôi đã thử làm điều này gần đây trên máy Windows, tôi đã gặp rất nhiều khó khăn. Vì vậy, giải pháp của tôi rất đơn giản. Tôi đã tải xuống phần mềm http://www.lenzg.net/rinetd/rinetd.html này theo hướng dẫn của họ về cách chuyển tiếp cổng và sau đó thành công thiết bị Android của tôi được kết nối để tạo dự án localhost asp.net và dừng lại ở điểm dừng của tôi.

tập tin rinetd.conf của tôi:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

Trong đó 10.1.1.20 là ip localhost của tôi, 82 và 1234 cổng của tôi Ngoài ra tôi đã sử dụng tệp tắm để dễ dàng yournameofbathfile.bat, hãy đặt tệp đó vào trong rinedfolder. Hồ sơ tắm của tôi:

rinetd.exe -c rinetd.conf

Sau khi khởi động phần mềm này, hãy khởi động máy chủ aps.net của bạn và thử truy cập từ thiết bị Android hoặc bất kỳ thiết bị nào trong mạng cục bộ của bạn (ví dụ: Máy tính ABC bắt đầu putty) và bạn sẽ thấy mọi thứ đều hoạt động. Không cần phải đi đến cài đặt bộ định tuyến hoặc làm bất kỳ điều phức tạp khác. Tôi hy vọng điều này sẽ giúp bạn. Thưởng thức.


-1

Một cách giải quyết khác là lấy một tên miền miễn phí từ no-ip.org và trỏ nó đến địa chỉ IP cục bộ của bạn. Sau đó, thay vì sử dụng, http://localhost/yourwebservicebạn có thể thửhttp://yourdomain.no-ip.org/yourwebservice

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.