Android、PHP、HttpGet

Android、PHP、HttpGet,php,android,json,Php,Android,Json,我目前有一个指向我编写的php文件的URL,该文件生成以下内容(我相信是JSON字符串) 我需要在安卓工作室拿这个。。。但我已经尝试了很多方法,但无论我发出http请求时应用程序崩溃了什么(从我发现的许多默认JSONParser类中的一个中),我也尝试了不同的解析器方法,但都没有成功 是否有一个特殊的格式,我应该检索这个?老实说,我从来没有在一个问题上花过像在这个问题上那样多的时间。极度沮丧>:( 编辑: 我尝试使用的方法之一 public JSONObject makeHttpRequest(

我目前有一个指向我编写的php文件的URL,该文件生成以下内容(我相信是JSON字符串)

我需要在安卓工作室拿这个。。。但我已经尝试了很多方法,但无论我发出http请求时应用程序崩溃了什么(从我发现的许多默认JSONParser类中的一个中),我也尝试了不同的解析器方法,但都没有成功

是否有一个特殊的格式,我应该检索这个?老实说,我从来没有在一个问题上花过像在这个问题上那样多的时间。极度沮丧>:(

编辑: 我尝试使用的方法之一

public JSONObject makeHttpRequest(String url){
    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(url);
    try {
        HttpResponse httpresponse = httpclient.execute(httppost);
        HttpEntity httpentity = httpresponse.getEntity();
        is = httpentity.getContent();

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        try {
            while((line = reader.readLine())!=null){
                sb.append(line+"\n");

            }
            is.close();
            json = sb.toString();
            try {
                jObj = new JSONObject(json);
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return jObj;

}
编辑:调试日志结果

04-30 19:11:33.670  32306-32306/uconn.campusoddjobs E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: uconn.campusoddjobs, PID: 32306
android.os.NetworkOnMainThreadException
        at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1239)
        at java.net.InetAddress.lookupHostByName(InetAddress.java:388)
        at java.net.InetAddress.getAllByNameImpl(InetAddress.java:239)
        at java.net.InetAddress.getAllByName(InetAddress.java:214)
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
        at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
        at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:367)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:519)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:497)
        at uconn.campusoddjobs.JSONparser.getJSONFromUrl(JSONparser.java:48)
        at uconn.campusoddjobs.Profile.<init>(Profile.java:39)
        at uconn.campusoddjobs.MyAccountFragment.onCreateView(MyAccountFragment.java:23)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:454)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:157)
        at android.app.ActivityThread.main(ActivityThread.java:5633)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:896)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)
        at dalvik.system.NativeStart.main(Native Method)
04-30 19:11:33.670 32306-32306/uconn.campusoddjobs E/AndroidRuntime﹕ 致命异常:主
进程:uconn.campusoddjobs,PID:32306
android.os.NetworkOnMainThreadException
在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork上(StrictMode.java:1239)
位于java.net.InetAddress.lookupHostByName(InetAddress.java:388)
位于java.net.InetAddress.getAllByNameImpl(InetAddress.java:239)
位于java.net.InetAddress.getAllByName(InetAddress.java:214)
位于org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
位于org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
位于org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
位于org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:367)
位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:519)
位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:497)
位于uconn.campusoddjobs.JSONparser.getJSONFromUrl(JSONparser.java:48)
在uconn.campusoddjobs.Profile.(Profile.java:39)
位于uconn.campusoddjobs.MyAccountFragment.onCreateView(MyAccountFragment.java:23)
位于android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
位于android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
位于android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
位于android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:454)
位于android.os.Handler.handleCallback(Handler.java:733)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:157)
位于android.app.ActivityThread.main(ActivityThread.java:5633)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:896)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)
在dalvik.system.NativeStart.main(本机方法)

您正在主线程上发出请求。 不能在主线程上进行网络操作,因为它们会阻塞用户界面

您可以使用ASyncTask()来实现这一点


这是一个教程:

你的日志是什么?你得到了什么样的异常?顺便说一下,这里有一些有用的库来支持REST Web服务。考虑使用,它很容易使用,并且节省了大量的时间。但是看起来正确的想法是什么?崩溃了吗?我用调试模型FIFE SAVER中显示的内容做了一个编辑。…我知道这是一件很简单的事情,一个聪明的人在这里可以解决。现在我要解决更多的“困难”问题,比如试图获取我携带的信息,以便在TextView XD中正确显示…谢谢!
04-30 19:11:33.670  32306-32306/uconn.campusoddjobs E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: uconn.campusoddjobs, PID: 32306
android.os.NetworkOnMainThreadException
        at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1239)
        at java.net.InetAddress.lookupHostByName(InetAddress.java:388)
        at java.net.InetAddress.getAllByNameImpl(InetAddress.java:239)
        at java.net.InetAddress.getAllByName(InetAddress.java:214)
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
        at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
        at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:367)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:519)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:497)
        at uconn.campusoddjobs.JSONparser.getJSONFromUrl(JSONparser.java:48)
        at uconn.campusoddjobs.Profile.<init>(Profile.java:39)
        at uconn.campusoddjobs.MyAccountFragment.onCreateView(MyAccountFragment.java:23)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:454)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:157)
        at android.app.ActivityThread.main(ActivityThread.java:5633)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:896)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)
        at dalvik.system.NativeStart.main(Native Method)