gpt4 book ai didi

java - 从 Android 设备访问 SQL DB 时,我的 httpEntity 返回 null,任何人都可以告诉我这是为什么吗?

转载 作者:行者123 更新时间:2023-11-29 22:35:56 24 4
gpt4 key购买 nike

这是我的连接器类,应该调用 php 脚本来访问数据库。调试时,我发现 httpEntity 返回 null,因此未检测到数据库中的任何结果。该网址在浏览器中工作正常,因此我不确定这是否是问题所在。

import android.os.StrictMode;
import android.util.Log;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import java.io.IOException;

public class ApiConnector {


public JSONArray GetAllCustomers()
{
// URL for getting all customers
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
String url = "mydburl";

// Get HttpResponse Object from url.
// Get HttpEntity from Http Response Object

HttpEntity httpEntity = null;

try
{

DefaultHttpClient httpClient = new DefaultHttpClient(); // Default HttpClient
HttpGet httpGet = new HttpGet(url);

HttpResponse httpResponse = httpClient.execute(httpGet);
Log.v("response code", httpResponse.getStatusLine()
.getStatusCode() + "");
httpEntity = httpResponse.getEntity();



} catch (ClientProtocolException e) {

// Signals error in http protocol
e.printStackTrace();

//Log Errors Here



} catch (IOException e) {
e.printStackTrace();
}


// Convert HttpEntity into JSON Array
JSONArray jsonArray = null;

if (httpEntity != null) {
try {
String entityResponse = EntityUtils.toString(httpEntity);

Log.e("Entity Response : ", entityResponse);

jsonArray = new JSONArray(entityResponse);

} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

return jsonArray;


}

}

php 脚本(在浏览器中运行)

<?php


$con = $con = mysql_connect("localhost","root","");

// Check connection
if (!$con)
{
echo "Failed to connect to MySQL: " . mysql_error();
}
mysql_select_db("dbname", $con);
$sql = 'SELECT * FROM `locations` ';
$result = mysql_query($sql);

while($row=mysql_fetch_assoc($result))
{
$output[]=$row;
}

print(json_encode($output));

mysql_close($con);

?>

最佳答案

这里实际上有两个问题,第一个是与我的 php 脚本有关,一旦我修改它以运行 mysqli 而不是我的 sql,它就可以正确运行。

另一个问题与我所经过的 IP 地址有关,该设备试图从我的设备的本地主机而不是笔记本电脑的本地主机读取数据。为了解决这个问题,我输入了我的 ipv4 地址。

关于java - 从 Android 设备访问 SQL DB 时,我的 httpEntity 返回 null,任何人都可以告诉我这是为什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29551580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com