缺乏在Android Studio中访问本地主机Laravel项目的API路由

13 浏览
0 Comments

缺乏在Android Studio中访问本地主机Laravel项目的API路由

我有一个包含Restful API的Laravel项目。我想从Android Studio访问这个API。我使用了Retrofit库。当我通过artisan运行服务器时,无法从Android Studio访问localhost的Laravel应用程序路由。根据这个问题accessing-localhost-laravel-app-routes-to-android-studio-failed,我将基本URL更改为http://192.168.1.103:8000/halamooz/public/api/并使用Apache服务器运行Laravel应用程序。为了完成这项工作,我遵循了这个指南使用XAMPP的Laravel实用指南。当然,我没有使用XAMPP,而是单独安装了Apache服务器。我可以从浏览器访问Web路由,但是当我尝试从Postman或Android Studio访问API路由时,我收到了404页面未找到的错误。我的错误在哪里?我在httpd-vhosts文件中添加了以下内容:\n


DocumentRoot "C:/apache/htdocs/halamooz/public"
ServerName exampledomain.com
ServerAlias exampledomain.com

AllowOverride All
Require all Granted


0
0 Comments

问题:在Android Studio中无法访问本地主机的Laravel项目API路由。

原因:

1. Laravel项目没有放置在C:\apache\htdocs目录下,导致无法通过localhost访问。

2. 没有在hosts文件中添加相应的映射。

3. 没有在httpd-vhosts文件中配置虚拟主机。

4. httpd.conf文件中的Include conf/extra/httpd-vhosts.conf未被取消注释。

5. Android设备和计算机没有连接到同一个网络。

解决方法:

1. 将Laravel项目放置在C:\apache\htdocs目录下。

2. 以管理员身份运行notepad应用程序,打开C:\Windows\System32\drivers\etc路径下的hosts文件,在文件末尾添加以下内容:

127.0.0.1        exampledomain.com www.exampledomain.com

3. 打开C:\apache\conf\extra路径下的httpd-vhosts文件,在文件末尾添加以下内容:


DocumentRoot "C:/apache/htdocs/NameOfProject/public"
ServerName exampledomain.com 
ServerAlias exampledomain.com 

AllowOverride All
Require all Granted

4. 取消注释C:\apache\conf\httpd.conf文件中的以下行:

Include conf/extra/httpd-vhosts.conf

5. 使用以下URL在postman或Android Studio项目中访问API:

http://{计算机的IPv4地址}:8000/{项目名称}/public/api/{所需方法}
例如:
http://192.168.1.3:8000/halamooz/public/api/login

注意:Android设备和计算机必须连接到同一个网络。

0
0 Comments

问题出现的原因是访问本地主机的Laravel项目API路由时出现了访问权限问题。解决方法是在httpd.conf文件中找到Listen 80,在其下方添加Listen 8060。然后打开httpd-vhosts.conf文件,在其中添加如下配置:


    ServerAdmin webmaster-host2.example.com
    DocumentRoot "C:/apache/htdocs/halamooz/public"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common

将DocumentRoot替换为项目的路径。在Postman中尝试访问http://localhost:8060/halamooz/public/api/login时,如果仍然出现404错误,可以尝试添加以下请求头:Content-type: application/json;。如果问题仍未解决,建议在Stack Overflow聊天室中继续讨论。

0