API 需要以下内容:
“用户”作为哈希(甚至无法从邮递员那里得到它......) 要更新为字符串的参数(姓名、电子邮件和密码) 图片来自“react-native-image-picker”(我对此有回应)
准备上传上传:
const handleUserUpdate = async () => {
if (photo === null || photo === undefined) {
return;
}
let avatar = photo.assets[0];
let uri = avatar.uri?.replace('file://', '');
// https://stackoverflow.com/questions/32441963/how-to-use-formdata-in-react-native
let formData = new FormData();
formData.append('user[avatar]', {
uri: uri,
name: avatar.fileName,
type: avatar.type,
});
formData.append('user[name]', 'Foo');
updateUserAvatar(formData)
.then(async response => {
await AsyncAlert('Success', 'Response code: ' + JSON.stringify(response));
})
.catch(error => {
Alert.alert('Error', JSON.stringify(error));
});
};
实际上传:
updateUserAvatar = async (avatar: FormData) => {
try {
await fetch(
'https://staging.appcms.dk/api/cX8hvUC6GEKGgUuvzsBCNA/app-memberships/',
{
body: JSON.stringify(avatar),
method: 'PATCH',
credentials: 'include',
headers: {
Accept: 'application/json',
'Content-Type': 'multipar/form-data',
},
},
)
.then(async response => {
if (response.ok) {
let res = await response.json();
console.log(JSON.stringify(res));
return res;
} else {
throw new Error(
response.status + ', ' + response.statusText,
);
}
})
.catch(error => {
console.log(error);
throw error;
});
} catch (error) {
return error;
}
};
我得到的唯一回复是 422。 我不知道如何将用户作为哈希添加到 formData 中。 或者标题可能有什么问题......
提前致谢!
我尝试模仿邮递员的 Patch 调用,但我遇到了与代码中相同的问题 - 我不知道如何将用户添加为哈希...
原来 api 调用的文档不完整,这又意味着我的请求标头不完整......
解决办法是什么?我也有同样的问题。
谢谢你