如何使用okHttpClient获取响应?

时间:2017-11-29 10:47:58

标签: android response okhttp

通常我使用volley来发送和从服务器获取数据但在我的一个活动中我使用okHttpClient发送数据并从服务器接收。我能够从服务器发送和接收数据,但我无法按字段分开。

以下是我的代码

        @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异常:在"

的字符0输入结束

请帮助我如何明智地获取数据。Response from server

这是我的回答。请帮忙。

  

{" user_detail" {" ID":110," USER_ID":53," address_type":" H& #34;"状态":" A"" house_number":" 2"" street_number":& #34; zuiderdijk""城市":"韦特伦""国家":"比利时"" POSTAL_CODE&# 34;:" 9230""纬度":"""经度":""&# 34; created_at":" 2017年11月13日   11:15:53""的updated_at":" 2017年11月29日   10:29:35"" admin_id":2" ADMIN_STATUS":" A""使用者" {&# 34; ID":53,"如first_name":"奇特拉""姓氏":"索兰奇""电子邮件& #34;:" schitralekha@deaninfotech.com","移动":空," sms_alternate_number":" 1234567890"" POSTAL_CODE":空,"语言":" FR"" OTP":空,"状态":" A& #34;" gcm_id":空," imei_number":" 356554060835242"" sms_status":" N" " api_token":" $ 2Y $ 10 $ QKOHH7GYJc / eVT4BGqq5U.0hEp8iVZh0Ybep9yySWjlM6SYRvG0gC"" created_at":" 2017年11月13日   11:12:06"," updated_at":" 2017-11-29 10:36:35"}},"成功":&#34 ;当前   活动位置已成功更新!"}

2 个答案:

答案 0 :(得分:0)

试试这个

[value]="config[key][item.name] != undefined ?config[key][item.name]:item.default"

答案 1 :(得分:0)

现在你必须让模型类从这里获取Model class

的参考

现在在类中声明所有以Json形式出现的字段作为响应。这是:我,user_id,status,address_type ....等......

现在您可以访问该Json:

  JSONObject userdetailObject = jsonObject.getJsonObject("user_detail");
  ModelClass model = new ModelClass();
  model.setId(userdetailObject.getString("I'd");
 Model.serUserId(userdetailObject.getString("user_id");

通过这种方式,您可以使用“模型对象”访问变量中的整个实体,就像我们在volley POJO类中所做的那样

谢谢,让我知道需要更多帮助。

快乐编码