{"id":13498294,"url":"https://github.com/alirezaafkar/JsonRequester","last_synced_at":"2025-03-29T00:34:14.850Z","repository":{"id":86523627,"uuid":"47875389","full_name":"alirezaafkar/JsonRequester","owner":"alirezaafkar","description":"An Android library for sending fast and clean json request, using volley","archived":false,"fork":false,"pushed_at":"2017-10-08T08:48:52.000Z","size":185,"stargazers_count":28,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-31T15:38:41.248Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alirezaafkar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-12-12T11:25:07.000Z","updated_at":"2023-10-09T14:22:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"f3e0487d-bdf2-4f46-bda5-1fd0d95f8d4c","html_url":"https://github.com/alirezaafkar/JsonRequester","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alirezaafkar%2FJsonRequester","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alirezaafkar%2FJsonRequester/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alirezaafkar%2FJsonRequester/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alirezaafkar%2FJsonRequester/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alirezaafkar","download_url":"https://codeload.github.com/alirezaafkar/JsonRequester/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246122259,"owners_count":20726822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T21:00:21.555Z","updated_at":"2025-03-29T00:34:14.230Z","avatar_url":"https://github.com/alirezaafkar.png","language":"Java","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# JsonRequester\nAn Android library for sending fast and clean JSON request, using Volley\n\n##Getting started\n\n### Dependency\n\n```\ndependencies {\n    compile 'com.android.volley:volley:1.0.0'\n    compile 'com.alirezaafkar:json-requester:1.1.4'\n}\n```\n\n### Usage\n\nInitialize `Requester` in your `Application` class in the `onCreate()` method.\n\n```java\n@Override\npublic void onCreate() {\n    super.onCreate();\n    \n    Map\u003cString, String\u003e header = new HashMap\u003c\u003e();\n    header.put(\"charset\", \"utf-8\");\n    \n    String baseUrl = \"http://example.com/api/\";\n    \n    new Requester.Config(getApplicationContext()).baseUrl(baseUrl).header(header); \n}\n```\n\n### Create a requester\n```java\nJsonObjectRequester mRequester;\nmRequester = new RequestBuilder(this)\n            .requestCode(REQUEST_CODE)\n            .contentType(ContentType.TYPE_JSON) //or ContentType.TYPE_FORM\n            .showError(true) //Show error with toast on Network or Server error\n            .shouldCache(true)\n            .priority(Request.Priority.NORMAL)\n            .allowNullResponse(true)\n            .tag(REQUEST_TAG)\n            .addToHeader(\"token\", user_token)\n            .buildObjectRequester(listener); //or .buildArrayRequester(listener);\n```\n### Create a listener\n```java\nprivate class JsonObjectListener extends Response.SimpleObjectResponse {\n        @Override\n        public void onResponse(int requestCode, @Nullable JSONObject jsonObject) {\n          //Ok\n        }\n\n        @Override\n        public void onErrorResponse(int requestCode, VolleyError volleyError, @Nullable JSONObject errorObject) {\n          //Error (Not server or network error)\n        }\n\n        @Override\n        public void onFinishResponse(int requestCode, VolleyError volleyError, String message) {\n          //Network or Server error\n        }\n\n        @Override\n        public void onRequestStart(int requestCode) {\n          //Show loading or disable button\n        }\n\n        @Override\n        public void onRequestFinish(int requestCode) {\n          //Hide loading or enable button\n        }\n}\n```\n\n### Request\n```java\nmRequester.request(Methods.GET, url);\nmRequester.request(Methods.POST, url, body); // application/x-www-form-urlencoded\nmRequester.request(Methods.POST, url, json); // application/json\n```\n\n### Callbacks\nSet callback to null on destroy\n\n### Activity\n```java\n@Override\n    protected void onDestroy() {\n        super.onDestroy();\n        if (isFinishing()) {\n            mRequester.setCallback(null);\n        }\n    }\n```\n\n### Fragment\n```java\n@Override\n    public void onDetach() {\n        super.onDetach();\n        if (isRemoving() || getActivity().isFinishing()) {\n            mRequester.setCallback(null);\n        }\n    }\n```\n\n### Nested Fragment\n```java\nif (getParentFragment().isRemoving() ||\n                isRemoving() || getActivity().isFinishing()) {\n            mRequester.setCallback(null);\n}\n```\n\n###Override strings\n```xml\n\u003cstring name=\"parsing_error\"\u003eParsing error\u003c/string\u003e\n\u003cstring name=\"server_error\"\u003eServer error\u003c/string\u003e\n\u003cstring name=\"network_error\"\u003eCheck your connection\u003c/string\u003e\n\u003cstring name=\"no_connection_error\"\u003eNo Connection\u003c/string\u003e\n\u003cstring name=\"timeout_error\"\u003eTimeout error\u003c/string\u003e\n```\n\n#Licence\n\n    Copyright 2015 Alireza Afkar\n    \n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n    \n        http://www.apache.org/licenses/LICENSE-2.0\n    \n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falirezaafkar%2FJsonRequester","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falirezaafkar%2FJsonRequester","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falirezaafkar%2FJsonRequester/lists"}