我在本地机器上运行一个web服务,该服务运行在localhost:54722上。
我想从Android模拟器中运行的应用程序调用该服务。
我读到在应用程序中使用10.0.2.2将访问localhost,但它似乎不能与端口号一起工作。它说HttpResponseException: Bad Request。
我在本地机器上运行一个web服务,该服务运行在localhost:54722上。
我想从Android模拟器中运行的应用程序调用该服务。
我读到在应用程序中使用10.0.2.2将访问localhost,但它似乎不能与端口号一起工作。它说HttpResponseException: Bad Request。
当前回答
"BadRequest"是一个通常由服务器本身发送的错误,参见rfc 2616
10.4.1 400个错误请求 由于语法错误,服务器无法理解请求。客户不应该在没有修改的情况下重复请求。
因此,您获得了到服务器的工作连接,但是您的请求不符合预期的形式。我不知道你如何创建连接,包括什么头(如果有的话)-但这是你应该检查。
如果您需要更多的帮助,请解释一下您的代码是关于什么的,以及它用来连接到服务器的是什么,这样我们就有了总体的了解。
这里有一个同样的问题-答案是内容类型没有设置在头部。
其他回答
默认AVD使用10.0.2.2,Genymotion使用10.0.3.2
运行您的本地主机后,您会得到http://localhost:[端口号]/在这里您可以找到您的端口号。
然后从命令中获取你的IP地址,打开你的windows命令,输入ipconfig
在我的例子中,IP是192.168.10.33,所以我的URL将是http://192.168.10.33:[端口号]/。 在Android中,工作室使用这个URL作为你的URL。然后在模拟器的手动代理中设置URL和端口号。
我在Visual Studio上执行IIS Express上的web应用程序时也遇到了同样的问题。要修复它,你需要去你的项目属性,然后点击调试选项卡,将http://localhost:[your PORT]更改为http://127.0.0.1:[your PORT],并将android url设置为http://10.0.2.2:[your PORT]。这对我很管用。
1)在cmd下执行ipconfig命令
2)你会得到这样的结果
3)使用VMWare网卡1的IPv4地址加上端口号
在我的例子中是8080,所以不用localhost:8080
我使用的是192.168.51:8080
做……
如果你正在使用一些第三方包,如node express或angular-cli,你需要找到你的机器的IP,并在服务器启动配置中将你的主机附加到该IP(而不是localhost)。然后使用IP从模拟器启动它。例如,我必须使用:ng serve -H 10.149.212.104来使用angular-cli。然后从我使用的模拟器:http://10.149.212.104:4200