/** * PhalApi框架 React-Naitve请求SDK * * "ダSimVlove辉"提供,QQ:254059780 有好的意见或建议请联系我 2016-03-08 * * 分为3种请求方式:get,post * * 所有请求均统一传递4个参数值(请求地址,接口名称.请求参数GET传递拼接好的参数 * Post传递数组key-value值,回调函数) * * 统一使用方式如下 import PhalApi from 'sdk所在目录' const data = {user_id: "2"} PhalApi.apiPost("http://192.168.1.107/PhalApi_1.3.2/Public", "User.getBaseInfo", data, (rs) => { if(rs.ret == 200){ //成功处理 }else{ //失败处理 } }) * 如果想返回json 使用response.json() * 如果只要返回普通的string response.text() * */ // 配置调试 const debug = false; export default PhalApi = new class { /* * 普通Post方式请求 */ apiPost(api_url, api_name, data, callback) { const textBody = this.urlForQuery(data) const full_api = api_url + "/" const fetchOptions = { method: 'POST', headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: 'service=' + api_name + '&' + textBody }; fetch(full_api, fetchOptions) .then(response => response.json()) .then((responseText) => { callback(textBody) if (debug) console.log(responseText); }) .catch((error) => { if (debug) console.warn(error); }); } /* * 普通Get方式请求 */ apiGet(api_url, api_name, data, callback) { const textBody = this.urlForQuery(data) const full_api = api_url + "?service=" + api_name + "&" + textBody fetch(full_api) .then((response) => response.json()) .then((responseText) => { callback(responseText) if (debug) console.log(responseText); }) .catch((error) => { if (debug) console.warn(error); }); } // 相关参数的拼接 urlForQuery(data) { const querystring = Object.keys(data) .map(key => key + '=' + encodeURIComponent(data[key])) .join('&'); return querystring; } }