Android访问php取回json数据


php代码如下

$array = array(
'username'=>'杨铸',
'password'=>'123456',
'user_id'=>1
);
echo json_encode($array);

Android代码如下

private void startUrlCheck(String username,String password)
{
     HttpClient client = new DefaultHttpClient();
StringBuilder builder = new StringBuilder();

HttpGet myget = new HttpGet("http://10.0.2.2/android/index.php");
try {
HttpResponse response = client.execute(myget);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
for (String s = reader.readLine(); s != null; s = reader.readLine()) {
builder.append(s);
}
JSONObject jsonObject = new JSONObject(builder.toString());
String re_username = jsonObject.getString("username");
String re_password = jsonObject.getString("password");
int re_user_id = jsonObject.getInt("user_id");
setTitle("用户id_"+re_user_id);
Log.v("url response", "true="+re_username);
Log.v("url response", "true="+re_password);
} catch (Exception e) {
Log.v("url response", "false");
e.printStackTrace();
}}
其中http://10.0.2.2为android访问本机url的ip地址。对应电脑上测试的http://127.0.0.1

另外执行代码时会抛出异常

java.net.SocketException: Permission denied

此为应用访问网络的权限不足 在AndroidManifest.xml中,需要进行如下配置:
<uses-permission android:name="android.permission.INTERNET" />
就加在
</manifest>
之前就好了
然后测试通过。

相关内容