在post方法和json中使用okhttpclient连接到android中的localhost

时间:2017-11-09 01:03:46

标签: php android json post okhttp

我有一个android登录页面,它将连接localhost url,传递json对象并从服务器接受json对象并烘烤它。但是现在我只收到了关于网址请求的部分内容。我开始知道我们必须在stackoverflow本身的android中使用IP而不是localhost。但是我没有从服务器得到任何回复。它显示为空白。但是,如果我使用外部URL,我会正确地得到它。我已经评论过它上方的网址。如果我解码json并在浏览器中回显它,它工作正常。但是我没有在我的应用程序中获取它。

这是我的Android代码:

public class FeedTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
        try {

            OkHttpClient client = new OkHttpClient();

            RequestBody postData = new FormBody.Builder()
                    .add("type","json")
                    .build();

            Request request = new Request.Builder()
                    //.url("http://codemobiles.com/adhoc/feed/youtube_feed.php")
                    .url("http://192.168.1.100/patronheedV1.1.1/App/Request/abc")
                    .post(postData)
                    .build();

            Response response = client.newCall(request).execute();
            String result = response.body().string();
            return  result;
        } catch (Exception e) {
            return null;
        }
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
    }

}

这是我的PHP代码:

<?php
class App {

    public function Request() {
        if ( isset($_POST) ){
            $obj = (object) ['aString' => 'Working'];
            return json_encode($obj);
        } else {
            $obj = (object) ['aString' => 'Notworking'];
            return json_encode($obj);
        }
    }

    public function fetchRequest() {
        if ( isset($_POST['Request']) && isset($_POST['Token']) ){
            $user = $_POST['User'];
            return $user;
        } else {
            return NULL;
        }
    }

}

0 个答案:

没有答案