我在获取时遇到一些问题,尤其是POST方法。我具有登录功能,可以登录到应用程序,但是当我输入用户名和密码时,错误如下所示。这个项目就像从Android Studio到React Native的迁移/重写。注意:电子邮件,密码,device_id和fcm_token是从应用程序加密的,并以加密字符串的形式发送到服务器。
此外,我也在Postman上对它进行了测试,并在主体上使用了加密的字符串,并且可以正常工作。有什么建议为什么会引发错误?谢谢。
这是React Native中用于获取登录API的代码
LoginEmail.js
...
await fetch(ApiUrl.login, {
method: "POST",
headers: new Headers({
"Accept": "application/x-www-form-urlencoded",
"Content-Type": "application/x-www-form-urlencoded",
"Eventku-Api-Key": AppData.apiKey
}),
body:
JSON.stringify( {
"&email=": cipherEmail.toString(),
"&password=": cipherPass.toString(),
"&device_id=": cipherDevice.toString(),
"&fcm_token=": cipherToken.toString()
})
}).then(response => response.text()).then(responseJson => {
...
这是要登录的Java代码
ApiServices.java
...
//login using email
@FormUrlEncoded
@POST("login")
Call<ResponUser> login(
@Field("email") String email,
@Field("password") String password,
@Field("device_id") String device_id,
@Field("fcm_token") String fcm_token
);
...
LoginActivity.java
...
apiServices.login(
Strings.encryptData(edtEmail.getText().toString()),
Strings.encryptData(edtPassword.getText().toString()),
Strings.encryptData(imeiNumber),
Strings.encryptData(fcm.getString(getString(R.string.FCM_TOKEN),""))
).enqueue(new Callback<ResponUser>() {
...
答案 0 :(得分:1)
这是由后端中的400错误代码引起的,将其更改为200,并且未显示“标头字段名称中的无效字符”错误。也许React Native只处理200条代码,而不是400条代码