#c# #reactjs #react-native
#c# #reactjs #react-native
Вопрос:
Я пытаюсь отправить две части информации из моего приложения React Native в мой C # API.
Мне просто нужно отправить идентификатор пользователя вместе с изображением. Если я использую form-data в PostMan, информация успешно поступает в API, и все работает отлично. Отправка данных через React Native — вот где я сталкиваюсь с проблемами.
Он не получает идентификатор пользователя. Я отправляю значение 2, но к тому времени, когда я получаю его в API, оно равно 0.
Собственный код реакции (фрагмент): (Api является экземпляром Axios)
Api.defaults.headers.common['Content-Type'] = 'multipart/form-data'
var name = userId '.jpg'
let formData = new FormData()
formData.append('userId', userId)
formData.append('profilePicture', {
uri:
Platform.OS === 'android'
? profilePicture.uri
: profilePicture.uri.replace('file://', ''),
name: name,
type: 'image/jpg',
})
const response = await Api.patch('/User/SaveProfilePictureUri', {
formData,
})
C # код (фрагмент):
[HttpPatch]
[Route("SaveProfilePictureUri")]
public async Task<bool> SaveProfilePictureUri([FromForm(Name = "userId")] int userId, [FromForm(Name = "profilePicture")] IFormFile profilePicture)
{
Request.Headers.TryGetValue("Requestor", out var requester);
_securityService.ValidRequester(requester);
Request.Headers.TryGetValue("JwtToken", out var jwtToken);
_securityService.CheckAuthentication(userId, jwtToken);
return await _userService.SaveProfilePictureUri(userId, profilePicture);
}
Что еще я могу попробовать?
Ответ №1:
В конце концов я понял это.
Мне нужно было удалить фигурные скобки вокруг FormData при вызове API. :facepalm:
От:
const response = await Api.patch('/User/SaveProfilePictureUri', {
formData,
})
Для:
const response = await Api.patch('/User/SaveProfilePictureUri', formData)