首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON数据未返回

问JSON数据未返回
EN

Stack Overflow用户
提问于 2019-06-04 19:35:16
回答 3查看 67关注 0票数 0

我已经编写了一段代码来访问下面的api并获取namaz计时的相应值,但是onResponse方法没有被调用。我已经在android清单文件中给出了互联网权限。我是Android新手,请帮帮忙。

虽然我在清单文件中提到过,但安装app并不需要互联网权限。

代码语言:javascript
复制
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

public class NamazTiming extends AppCompatActivity {

    private TextView fazarId, zoharid, asarid, magribid, ishaid, location;
    private RequestQueue mQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.namaz_timing);

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("Namaz Timings");

        fazarId = findViewById(R.id.fazarid);
        zoharid = findViewById(R.id.zoharid);
        asarid = findViewById(R.id.asarid);
        magribid = findViewById(R.id.magribid);
        ishaid = findViewById(R.id.ishaid);
        location = findViewById(R.id.location);

        Button locationbutton = findViewById(R.id.locationbutton);

        mQueue = Volley.newRequestQueue(this);
        locationbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                jsonParse();
            }
        });
    }

    private void jsonParse() {
        //String loc = location.getText().toString().trim();
        String url ="https://muslimsalat.com/uravakonda.json?key=ba8d0b5ba55c6db3cebbe3fefd6090f8";
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
            Toast.makeText(NamazTiming.this, "Entered onresponse", Toast.LENGTH_SHORT).show();

            try {
                Toast.makeText(NamazTiming.this, "Entered into TRY", Toast.LENGTH_SHORT).show();
                String Fazar = response.getJSONArray("items").getJSONObject(0).get("fajr").toString();
                String Zohr = response.getJSONArray("items").getJSONObject(0).get("dhuhr").toString();
                String Asar = response.getJSONArray("items").getJSONObject(0).get("asr").toString();
                String Magrib = response.getJSONArray("items").getJSONObject(0).get("maghrib").toString();
                String Isha = response.getJSONArray("items").getJSONObject(0).get("isha").toString();

                fazarId.setText(Fazar);
                zoharid.setText(Zohr);
                asarid.setText(Asar);
                magribid.setText(Magrib);
                ishaid.setText(Isha);

            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(NamazTiming.this, "Please enter the lccation name", Toast.LENGTH_SHORT).show();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
            Toast.makeText(NamazTiming.this, "Please enter the lccation name", Toast.LENGTH_SHORT).show();
        }
    });
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-04 19:42:53

为了执行请求,您需要将request对象添加到Volley队列(在本例中为mQueue)。

示例:mQueue.add(request);

票数 0
EN

Stack Overflow用户

发布于 2019-06-04 20:00:04

Internet权限是正常权限,因此android系统不会询问internet权限。

你只需拨打这条线路:

mQueue.add(request);

请求结束。

票数 0
EN

Stack Overflow用户

发布于 2019-06-04 20:29:27

在请求末尾的errorListener方法后添加以下行

代码语言:javascript
复制
mQueue.add("your request type"); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56443071

复制
相关文章

相似问题

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