首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用okHttpClient获取响应?

如何使用okHttpClient获取响应?
EN

Stack Overflow用户
提问于 2017-11-29 18:47:58
回答 2查看 147关注 0票数 -1

我通常使用volley从服务器发送和获取数据,但在我的一次活动中,我使用okHttpClient从服务器发送和接收数据。我可以发送和接收来自服务器的数据,但我不能按字段分开。

下面是我的代码

代码语言:javascript
复制
        @Override
        public void onResponse(Call call, final okhttp3.Response response) throws IOException {
            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    try {

                        JSONObject jsonObject = new JSONObject(response.body().string());


                        Toast.makeText(getActivity(), "mail sent successfully.", Toast.LENGTH_SHORT).show();

                        description.setText(" ");
                        txt_picture_preview.setImageResource(android.R.color.transparent);
                        selecttypedec.setSelection(0);

                        progressDialog.dismiss();


                        Log.d("TAG", "response of image: " + response.body().string());

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

但是它抛出了错误,比如"org.json.JSON Exception : End of input at character 0 at“

请帮助我如何才能获得数据领域的智慧。

这是我的回应。请帮帮忙。

{"user_detail":{"id":110,"user_id":53,"address_type":"H","status":"A","house_number":"2","street_number":"zuiderdijk","city":"wetteren",“country”:“比利时”,"postal_code":"9230",“纬度”:“”,“经度”:“”,"created_at":"2017-11-13 11:15:53","updated_at":"2017-11-29 10:29:35","admin_id":2,"admin_status":"A","user":{"id":53,"first_name":"chitra","last_name":"solanki","email":"schitralekha@deaninfotech.com",“手机”:null,"sms_alternate_number":"1234567890",“2017”:null,"language":"fr","otp":null,"status":"A","gcm_id":null,"imei_number":"356554060835242","sms_status":"n","api_token":"$2y$10$QKOHH7GYJc/eVT4BGqq5U.0hEp8iVZh0Ybep9yySWjlM6SYRvG0gC","created_at":"2017-11-13 11:12:06",“updated_at”:“postal_code-11-29 10:29:35"}},“success”:“当前活动位置更新成功!”}

EN

回答 2

Stack Overflow用户

发布于 2017-11-29 19:03:16

尝尝这个

代码语言:javascript
复制
  try {
        JSONObject jsonObject= new JSONObject(response.body().string());
        JSONObject user_detail= jsonObject.getJSONObject("user_detail");

        Log.e("id",user_detail.getString("id"));
        Log.e("user_id",user_detail.getString("user_id"));
        Log.e("address_type",user_detail.getString("address_type"));
        Log.e("status",user_detail.getString("status"));
        Log.e("house_number",user_detail.getString("house_number"));
        Log.e("street_number",user_detail.getString("street_number"));
        Log.e("city",user_detail.getString("city"));
        Log.e("country",user_detail.getString("country"));
        Log.e("postal_code",user_detail.getString("postal_code"));
        Log.e("latitude",user_detail.getString("latitude"));
        Log.e("longitude",user_detail.getString("longitude"));
        Log.e("created_at",user_detail.getString("created_at"));
        Log.e("updated_at",user_detail.getString("updated_at"));
        Log.e("admin_id",user_detail.getString("admin_id"));
        Log.e("admin_status",user_detail.getString("admin_status"));

        JSONObject user= user_detail.getJSONObject("user");
        Log.e("id",user.getString("id"));
        Log.e("first_name",user.getString("first_name"));
        Log.e("last_name",user.getString("last_name"));
        Log.e("email",user.getString("email"));
        Log.e("mobile",user.getString("mobile"));
        Log.e("sms_alternate_number",user.getString("sms_alternate_number"));
        Log.e("postal_code",user.getString("postal_code"));
        Log.e("language",user.getString("language"));
        Log.e("otp",user.getString("otp"));
        Log.e("status",user.getString("status"));
        Log.e("gcm_id",user.getString("gcm_id"));
        Log.e("imei_number",user.getString("imei_number"));
        Log.e("sms_status",user.getString("sms_status"));
        Log.e("api_token",user.getString("api_token"));
        Log.e("created_at",user.getString("created_at"));
        Log.e("updated_at",user.getString("updated_at"));

    } catch (JSONException e) {
        e.printStackTrace();
    }
票数 0
EN

Stack Overflow用户

发布于 2017-11-29 19:04:28

现在你必须创建一个模型类(参见references here)。

现在,在类中声明所有以Json形式出现的字段作为响应。包括: id、user_id、status、address_type等。

现在,您可以通过以下方式访问该Json:

代码语言:javascript
复制
  JSONObject userdetailObject = jsonObject.getJsonObject("user_detail");
  ModelClass model = new ModelClass();
  model.setId(userdetailObject.getString("I'd");
 Model.serUserId(userdetailObject.getString("user_id");

通过这种方式,您可以使用"model object“访问变量中的整个实体,就像我们在Volley POJO类中所做的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47550947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档