当前位置: 首页 > 面试题库 >

如何使用HttpURLConnection而不是Volley获取JSON对象?

钱雅逸
2023-03-14
问题内容

我想做的是从而HttpURLConnection不是JsonObjectRequest()从Volley库中使用一些数据

以下是用于从服务器中获取JSON对象的代码。

JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,"myURL", null, new Response.Listener<JSONObject>();

我试图改变nullJSONObjectmyURL改为null。但这并没有解决。


问题答案:

中的url JsonObjectRequest()不是可选的,并且JSONObject参数用于将带有请求的参数发布到url。

从文档中:http
:
//afzaln.com/volley/com/android/volley/toolbox/JsonObjectRequest.html

http://developer.android.com/training/volley/index.html

JsonObjectRequest

public JsonObjectRequest(int方法,字符串url,JSONObject
jsonRequest,Response.Listener侦听器,Response.ErrorListener
errorListener)创建一个新请求。

参数:

method-要使用的HTTP方法

url-从中获取JSON的URL

jsonRequest-与请求一起发布的JSONObject。允许为空,表示没有参数将与请求一起发布。

侦听器-侦听器以接收JSON响应

errorListener-错误侦听器,如果为null则忽略错误。

使用HttpURLConnection

http://developer.android.com/reference/java/net/HttpURLConnection.html

该代码将是这样的:

 public class getData extends AsyncTask<String, String, String> {

        HttpURLConnection urlConnection;

        @Override
        protected String doInBackground(String... args) {

            StringBuilder result = new StringBuilder();

            try {
                URL url = new URL("https://api.github.com/users/dmnugent80/repos");
                urlConnection = (HttpURLConnection) url.openConnection();
                InputStream in = new BufferedInputStream(urlConnection.getInputStream());

                BufferedReader reader = new BufferedReader(new InputStreamReader(in));

                String line;
                while ((line = reader.readLine()) != null) {
                    result.append(line);
                }

            }catch( Exception e) {
                e.printStackTrace();
            }
            finally {
                urlConnection.disconnect();
            }


            return result.toString();
        }

        @Override
        protected void onPostExecute(String result) {

            //Do something with the JSON string

        }

    }


 类似资料:
  • 我有一个方法,它应该从JSON返回不同的对象,这取决于参数中的类类型。我试着根据参数返回一个对象列表,但是我只把LinkedHashMap放入ArrayList。 我搜索了很多,但是在解决方案中,类类型的所有地方都是硬编码的。 有没有一种不用硬代码就能解决这个问题的方法? 我只想传递类类型并通过一个方法获取对象。 当我的对象有关系时,我得到这个例外 无法识别的字段"字段"(类model.orm.部

  • 问题内容: 我正在使用 Python 2 从 ASCII编码的 文本文件中解析JSON 。 当使用或 加载这些文件时,我所有的字符串值都转换为Unicode对象而不是字符串对象。问题是,我必须将数据与仅接受字符串对象的某些库一起使用。我 无法更改库, 也 无法 更新它们。 是否可以获取字符串对象而不是Unicode对象? 更新资料 很久以前 ,当我坚持使用 Python 2 时就问 了 这个问题。

  • 问题内容: 我正在使用Python 2从ASCII编码的文本文件中解析JSON 。 用json或 加载这些文件时simplejson,我所有的字符串值都转换为Unicode对象而不是字符串对象。问题是,我必须将数据与仅接受字符串对象的某些库一起使用。我无法更改库,也无法更新它们。 是否可以获取字符串对象而不是Unicode对象? 例 问题答案: 解决方案 用法示例: 它是如何工作的,为什么要使用它

  • 我用的是swapi。在Spring Boot中获取应用程序数据的dev API。我需要用一个行星的名字来获取它的信息。因此,我使用下一个url:https://swapi.dev/api/planets/?search=Tatooine.JSON结果如下所示: 现在,在Java中,我使用服务中的下一个代码: 我只需要得到结果的数组,但是,我如何从对象得到结果的数组?

  • 我试图获取一个结果集并将其强制转换为bean。不起作用。但后来我试着向bean列表进行了强制转换,它起作用了。有人能告诉我如何使用Jdbctemplate和RowMapping直接获取Bean对象吗? 如果有没有行映射器的其他解决方案,那就更好了。因为在表中,我有50+列,所以很难创建具有这些字段的Bean

  • 请帮助我获取所有与JIRA X射线执行相关的测试 我正在学习java。lang.IllegalStateException:在下面最后一步提到的步骤中不是JSON对象错误(element.getAsJsonObject();) 注意:输入行打印为[{"id": 100806,"state":"TODO","key":"ST_MABC-1234","秩": 1}]