PHP+ANDROID+JSON简单示例

3 篇文章 0 订阅
2 篇文章 0 订阅

现在android应用很多使用json通信,据说是这样。

就在网上找示例想来看看 但是没找到直接down下来就可以用的,找了一个比较靠谱的,略加修改。跑通了。

php端如下:

注意要把格式转换成utf-8,最保险就是将整个文件转化成utf8编码。

<?php
header("Content-Type: text/html; charset=UTF-8");

$array=array('title'=>'name','value'=>'dog');
echo json_encode($array);

?>

android 端的代码 如下:

package com.example.jsontest;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;

import android.widget.EditText;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = (Button) findViewById(R.id.getPhpJson);
        btn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                EditText edit = (EditText) findViewById(R.id.typeId);

                String url = "http://192.168.191.1/test/json.php";
                edit.setText("begin");

                getServerJsonDataWithNoType(url, edit);
            }
        });
    }

    public void getServerJsonDataWithNoType(String url, EditText editText) {
        int res = 0;
        HttpClient client = new DefaultHttpClient();
        StringBuilder str = new StringBuilder();
        HttpGet httpGet = new HttpGet(url);
        try {
            HttpResponse httpRes = client.execute(httpGet);
            httpRes = client.execute(httpGet);
            res = httpRes.getStatusLine().getStatusCode();
            if (res == 200) {
                BufferedReader buffer = new BufferedReader(
                        new InputStreamReader(httpRes.getEntity().getContent()));
                for (String s = buffer.readLine(); s != null; s = buffer
                        .readLine()) {

                    str.append(s);
                }
                String newstr = new String(str.toString().getBytes(), "UTF-8");
                editText.setText(newstr);

                JSONObject json = new JSONObject(newstr);

                String title = json.getString("title");

                String value = json.getString("value");
                editText.setText(title + value);

            } else {

            }
        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

注意要把字符串转为utf8编码,因为String 默认是unicode编码的。

String newstr = new String(str.toString().getBytes(), "UTF-8");


再然后就是 

别忘了在AndroidManifest.xml中给app加上权限:

 <uses-permission android:name="android.permission.INTERNET" />


这样这个例子就OK了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值