JDNetwork
方法
注意:所有通过京东客户端SDK发送的网络请求,必须返回code:0,才会收到成功回调,其他业务错误码请另起字段返回。
fetch ( function_id : string, host : string, host_beta : string, params_json : string, ): Promise
通过京东客户端SDK进行网络请求
- function_id:请求GW的对应functionId,例如:getJpOrderDetail
- host:正式环境的host地址,例如:android对应是'api.m.jd.com',ios对应是'http://api.m.jd.com/client.action?functionId='
- host_beta:预发布环境的host地址,例如:android对应是'api.m.jd.care',ios对应是'http://api.m.jd.care/client.action?functionId='
- params_json: 请求数据的参数,例如:{orderCode:123456}
- method:默认是post,需要get,设置get
- 返回 Promise(resolve,reject)对象 , Android平台需要对responseData进行JSON.parse处理,iOS平台不需要
fetchWithTimeOut ( function_id : string, host : string, host_beta : string, params_json : string, timeout : number): Promise
通过京东客户端SDK进行网络请求,http请求方式是post
- function_id:请求GW的对应functionId,例如:getJpOrderDetail
- host:正式环境的host地址,例如:android对应是'api.m.jd.com',ios对应是'http://api.m.jd.com/client.action?functionId='
- host_beta:预发布环境的host地址,例如:android对应是'beta-api.m.jd.com',ios对应是'http://beta-api.m.jd.com/client.action?functionId='
- params_json: 请求数据的参数,例如:{orderCode:123456}
- timeout: timeout不是-1时,设置超时时间。单位为【毫秒】
- 返回 Promise
对象
fetchWithoutHost ( function_id : string, params_json : string, method : string): Promise
通过京东客户端SDK进行网络请求,使用默认的Host地址
- function_id:请求GW的对应functionId,例如:getJpOrderDetail
- params_json: 请求数据的参数,例如:{orderCode:123456}
- method:默认是post,需要get,设置get
- 返回 Promise(resolve,reject)对象
fetchWithEncryption ( function_id : string, host : string, host_beta : string, params_json : string, method : string): Promise
通过京东客户端SDK进行网络请求,加密参数(2018-11-30 android & iOS >= 7.3.0)
- function_id:请求GW的对应functionId,例如:getJpOrderDetail
- host:正式环境的host地址,例如:android对应是'api.m.jd.com',ios对应是'http://api.m.jd.com/client.action?functionId='
- host_beta:预发布环境的host地址,例如:android对应是'beta-api.m.jd.com',ios对应是'http://beta-api.m.jd.com/client.action?functionId='
- paramsjson: 请求数据的参数,需要加密的字段添加jdenc前缀,例如:{jdenc_orderCode:123456}
- method:默认是post,需要get,设置get
- 返回 Promise
对象
fetchWithoutHostWithEncription ( function_id : string, params_json : string, method : string): Promise
通过京东客户端SDK进行网络请求,加密参数(调用fetchWithEncryption方法)并使用默认的Host地址
- function_id:请求GW的对应functionId,例如:getJpOrderDetail
- paramsjson: 请求数据的参数,需要加密的字段添加jdenc前缀,例如:{jdenc_orderCode:123456}
- method:默认是post,需要get,设置get
- 返回 Promise
对象
fetchWithSign ( function_id : string, host : string, host_beta: string, params_json : string, method : string, use_https:string="1"): Promise
支持用户在原生配置color平台申请的secretKey和appId进行网络请求
- function_id:请求GW的对应functionId,例如:getJpOrderDetail
- host:host地址,例如:主站客户端android对应是'api.m.jd.com'
- host_beta:beta host地址
- params_json: 请求数据的参数,例如:{orderCode:123456}
- method:默认是post,需要get,设置get
- Promise
对象
fetchWithSignAndHead (obj: {
function_id: String,
host: String,
host_beta: String,
params_json: String,
params: Object,
head: Object,
method: String,
cookieKey: String,
use_https: String
}
): Promise
支持用户在原生配置color平台申请的secretKey和appId进行网络请求,可以传入网络请求头
- function_id:请求GW的对应functionId,例如:getJpOrderDetail
- host:host地址,例如:主站客户端android对应是'api.m.jd.com'
- host_beta:预发布环境的host地址,
- params_json: 请求数据的参数,例如:{orderCode:123456}
- params:设置跟body同级的请求参数
- head:设置Http header
- method:默认是post,需要get,设置get
- cookieKey: 独立app设置cookie里面的key,例如:万商{cookieKey:'fx_app_key'}
*返回 Promise
对象
fetchWithHead ( function_id : string, host : string, host_beta : string, params_json : string, head: Object, method : string): Promise
通过京东客户端SDK进行网络请求,可以支持网络请求头
- function_id:请求GW的对应functionId,例如:getJpOrderDetail
- host:正式环境的host地址,例如:android对应是'api.m.jd.com',ios对应是'http://api.m.jd.com/client.action?functionId='
- host_beta:预发布环境的host地址,例如:android对应是'beta-api.m.jd.com',ios对应是'http://beta-api.m.jd.com/client.action?functionId='
- params_json: 请求数据的参数,例如:{orderCode:123456}
- method:默认是post,需要get,设置get
- head: 网络请求头,是一个对象
- 返回 Promise
对象
代码示例
const React = require( 'react' );
const { View, StyleSheet, ToastAndroid } = require( 'react-native' );
const {
JDDevice,
JDTouchable,
JDThemeText,
JDNetwork,
JDButton,
JDToast,
JDLoadingView,
JDRouter
} = require( '@jdreact/jdreact-core-lib' );
const { NavigationBar, nativeHistory } = JDRouter;
const JDNetworkExample = React.createClass({
getInitialState( ) {
return {
toast: null,
toastStyle: null,
mode: JDToast.MODE.TOAST,
};
},
render( ) {
return (
<View style={styles.wrapper}>
<NavigationBar Title="JDNetwork组件"/>
<View style={styles.body}>
<JDTouchable onPress={( ) => {
JDNetwork.fetchWithoutHost( 'getShopSignListPage', "{'needErrorView':'false','needPin':'true','needRotate':'true'}" ).then(( response ) => {
alert(JSON.stringify( response ));
this._onHide();
}).catch(err => alert( err ));
this.setState({
toast: (
<View style={{width: JDDevice.getRpx(200), height: JDDevice.getRpx(200), justifyContent: 'center', alignItems: 'center', }}>
<View style={{marginBottom: JDDevice.getRpx(20)}}><JDLoadingView /></View>
<JDThemeText style={{color: '#FFF'}}>数据加载中...</JDThemeText>
</View>
),
toastStyle: {borderRadius: 8, backgroundColor: 'rgba(0, 0, 0, 0.6)'},
mode: JDToast.MODE.MODAL,
})
}}>
<View style={styles.btn}>
<JDThemeText style={styles.btnText}>JDNetwork.fetchWithoutHost</JDThemeText>
</View>
</JDTouchable>
</View>
<JDToast show={!!this.state.toast} onHide={this._onHide} style={this.state.toastStyle} mode={this.state.mode}>
{ this.state.toast }
</JDToast>
</View>
);
},
_onHide() {
this.setState({
toast: null,
toastStyle: null,
mode: JDToast.TOAST_MODE,
});
},
});
const styles = StyleSheet.create({
wrapper: {
flex: 1
},
body: {
flex: 1,
padding: JDDevice.getRpx( 20 )
},
btn: {
borderRadius: JDDevice.getDpx( 4 ),
backgroundColor: '#f23030',
justifyContent: 'center',
alignItems: 'center',
height: JDDevice.getRpx( 80 ),
marginBottom: JDDevice.getRpx( 20 )
},
btnText: {
color: '#FFF'
},
customDialogStyle: {
borderWidth: 5,
borderColor: '#F00'
},
dialogContent: {},
title: {
height: JDDevice.getRpx( 80 ),
borderBottomWidth: JDDevice.getDpx( 1 ),
borderColor: '#555',
paddingLeft: JDDevice.getRpx( 20 ),
alignItems: 'center',
justifyContent: 'center'
},
dialogBody: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
paddingLeft: JDDevice.getRpx( 20 ),
height: JDDevice.getRpx( 340 )
}
});
module.exports = JDNetworkExample;