React native android API call not happened one specific endpoint

Viewed 23

hi I have one endpoint which is pass multipart formdata

URL : http://100.20.168.179/public/index.php/maintenances/create_ticket

Method: Post Body request

const SelectData = {
 "description": "Fff",
 "room_id": "Ghh",
 "maintenance_unique_id": "1662630778728",
 "lang_flag": "en",
 "asset_type": "2",
 "longitude": "0.0",
 "work_type": "69",
 "user_id": "20",
 "latitude": "0.0",
 "area": "291",
 "location": "22",
 "urgency_level": "4",
 "category_name": "",
 "device_id": "2",
 "captured_adress": "3377",
 "reported_on": "2022-09-08 03:22:58",
 "is_mediafile": "0"
}

My code as below

 const form = new FormData();
 const imageFileData = {
 name: imageFilePath?.fileName,
  type: `image/jpg`,
  uri: imageFilePath?.uri,
 };
 form.append('webdata', JSON.stringify(SelectData));
 if (imageFilePath?.uri   || videoFilePath?.uri ) {
  form.append('file_name',  imageFileData );
 }
 else{
   form.append('file_name', JSON.stringify(null));
 }
 addTicket(Config.BASE_URL + '/maintenances/create_ticket',form);

useAddTicket.ts

const useAddTicket = () => {
//   const [data, setData] = useState();
 const [isLoading, setIsLoading] = useState(false);
const navigation = useNavigation();

 const addTicket = async (url: string, data: any) => {
 console.log('formDatain Hook', data);
 console.log('url Hook', url);
 console.log('internet', globals.GlobalVariable.isConnected);
 if (globals.GlobalVariable.isConnected === true) {
  try {
    setIsLoading(true);
    const headers = {
      'Content-Type': 'multipart/form-data; boundary=V2ymHFg03ehbqgZCaKO6jy',
      // Connection: 'keep-alive',
      //   'Content-Disposition': 'form-data; name="webdata"',
    };
    const response = await axios.post(url, data, { headers: headers });
    if (response.data.sStatus == 1) {
      setIsLoading(false)
      console.log('useAddTicket Data res -->', response);
      Alert.alert(`${response.data.sData.maintenance_id}`, response.data.sMessage, [
        { text: 'OK', onPress: () => navigation.goBack() },
      ]);
    }
  } catch (error) {
    console.log('useAddTicket error -->', error);
    setIsLoading(false);
  }
} else {
  Alert.alert('No Internet!');
 }
};
return {
 isLoading,
 // data,
 addTicket,
 };
};
 export default useAddTicket;

Issue is Above code working in iOS emulator but in Android it is not working in emulator as well as Real device . When i try to run in android it is continuously loading API call is not happened so any idea how can I solve this ? Your all suggestions is appreciated

NOTE: I mage getting log till internet true inside addTicket function. It means my request is not reach to Endpoint

1 Answers

Try as below:

const oFormData = new FormData();
oFormData.append("image", {
            uri: val.uri,
            type: val.type,
            name: val.fileName
        });
return axios.post(postUrl, oFormData);
Related