我最初使用的是关于 android hive 的教程: http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/
事实证明,HTTP 请求的某些代码已被弃用,我已经查看了 OkHttp 的文档。我正在尝试测试一些 PHP 文件,但我不断收到“失败”消息,并且所有不同的 IP 地址都出现异常。我的 WAMP 图标是绿色的,我可以在浏览器中访问本地主机,但不能在 Android 模拟器上访问。 PHP 文件工作正常。我已经使用了 127.0.0.1、192.168.1.1XX、10.0.0.2 和 localhost,但在发出请求时没有 IP 地址起作用。我什至关闭了防火墙和防病毒软件,但这没有什么区别。我只是不断收到一个 logcat,一遍又一遍地显示失败。我之前测试了电影数据库 API,它运行良好,所以这与 URL 有关。如何通过 Android 模拟器连接 WAMP?
import android.Manifest;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import okhttp3.OkHttpClient;
import okhttp3.Request;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int permissionCheck = ContextCompat.checkSelfPermission(getApplication(),
Manifest.permission.INTERNET);
OkHttpClient client = new OkHttpClient();
try {
Request request = new Request.Builder()
.url("10.0.2.2:80/android_connect/create_product.php")
.build();
Log.i("tag", "success");
} catch (Exception e) {
e.printStackTrace();
Log.i("tag", "failure");
}
}
}
错误是零星的。不同的IP给我不同的错误。无论哪种方式,它都会不断抛出异常。这也是我的第一篇文章,所以我真的不知道如何格式化错误。当我使用10.0.2.2时,如下:
07-20 22:16:15.694 9958-9958/? E/memtrack:无法加载 memtrack 模块(没有这样的文件或目录) 07-20 22:16:15.694 9958-9958/? E/android.os.Debug:无法加载 memtrack 模块:-2 07-20 22:16:15.716 9958-9968/? E/art:运行时关闭时线程附加:Binder_1 07-20 22:16:15.805 9962-9962/? E/memtrack:无法加载 memtrack 模块(没有这样的文件或目录) 07-20 22:16:15.805 9962-9962/? E/android.os.Debug:无法加载 memtrack 模块:-2 07-20 22:16:16.428 1971-2311/com.google.android.googlequicksearchbox E/Surface: getSlotFromBufferLocked: 未知缓冲区: 0xae48e1e0 07-20 22:16:16.548 1178-1241/? E/SurfaceFlinger:ro.sf.lcd_密度必须定义为构建属性
最佳答案
我实际上使用模拟器来检查什么IP地址会给我WAMP主页,结果发现IP4地址和10.0.2.2正在工作,并且我也更改了http.conf文件中的端口,因此端口必须现在正在工作。我使用的 android hive 教程已经过时,因此 PHP 文件和 JSON 响应可能是问题所在。
原来我在链接中缺少“http://”。
关于java - 如何在Android模拟器上向WAMP服务器发出HTTP请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493643/