अपने आवेदन में मैं एपीआई के माध्यम से उपयोगकर्ता को लॉगिन करने का प्रयास कर रहा हूं, लेकिन मुझे निम्न त्रुटि मिल रही है।

E/flutter (14103): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter (14103): <!DOCTYPE html>
E/flutter (14103): ^
E/flutter (14103): 
E/flutter (14103): #0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1404:5)
E/flutter (14103): #1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1271:9)
E/flutter (14103): #2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:936:22)
E/flutter (14103): #3      _parseJson (dart:convert-patch/convert_patch.dart:40:10)
E/flutter (14103): #4      JsonDecoder.convert (dart:convert/json.dart:505:36)
E/flutter (14103): #5      JsonCodec.decode (dart:convert/json.dart:156:41)
E/flutter (14103): #6      jsonDecode (dart:convert/json.dart:96:10)
E/flutter (14103): #7      FormBloc.login (package:curtain/blocs/form_bloc.dart:74:18)

कोड के मेरे पिछले संस्करण में सब कुछ सफलतापूर्वक काम कर रहा था। कुछ संशोधन करने के बाद (सत्यापनकर्ता जोड़ने सहित) मेरा कोड काम नहीं कर रहा है। नीचे आप मेरा http अनुरोध देख सकते हैं:

static Future<dynamic> loginUser(String username, String password) async {
    final result = await http.post('$baseURL/en/users/login/', headers: {
      'Accept': 'application/json',
    }, body: {
      'username': username,
      'password': password,
    });

    return result?.body;
  }

और इस तरह मैं इसे कॉल कर रहा हूं:

dynamic login(BuildContext context) async {
    final res = await AuthService.loginUser(_username.value, _password.value);
    final data = jsonDecode(res) as Map<String, dynamic>;

    if (data['status'] != 200) {
      addError(data['message']);
    } else {
      Navigator.of(context).push(
        CupertinoPageRoute(
          builder: (context) => FeedScreen(),
        ),
      );
      return res;
    }

मुझे बताएं कि क्या आपको यह देखने की ज़रूरत है कि मेरी जेसन प्रतिक्रिया कैसी होनी चाहिए

1
Davrick 13 फरवरी 2021, 22:22

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि मैं देख सकता हूं कि कोड में कुछ भी गलत नहीं है। या तो आप wrong URL तक पहुंच रहे हैं या वेब सेवा में कुछ गड़बड़ है। कृपया यूआरएल सुनिश्चित करें और देखें कि क्या आप सही यूआरएल तक पहुंच रहे हैं।

डाकिया में इस एपीआई को हिट करने का प्रयास करें और देखें कि आपको क्या प्रतिक्रिया मिल रही है। आप बेहतर समझ पाएंगे।

1
master Gaurav 13 फरवरी 2021, 22:31
यही बात है। पोस्टमैन में कार्यरत है। यह तब काम कर रहा है जब मैं यूआरएल के माध्यम से भी लॉग इन कर रहा हूं। लेकिन यहां त्रुटियां।
 – 
Davrick
13 फरवरी 2021, 22:40
क्या ऐसा इसलिए हो सकता है क्योंकि मैं उपयोगकर्ता नाम और पासवर्ड के लिए स्ट्रिंग्स का उपयोग नहीं कर रहा हूं, लेकिन BehaviorSubject<String>() ??
 – 
Davrick
13 फरवरी 2021, 22:40
1
Http.post() से पहले उस डेटा को सुनिश्चित करें जिसे आप मान के रूप में पास कर रहे हैं यानी लॉग में उपयोगकर्ता नाम और पासवर्ड
 – 
master Gaurav
13 फरवरी 2021, 22:45
हाँ, मैंने http.post() से पहले डेटा मुद्रित किया है, वे सही हैं। हालाँकि, यह उन मुद्रित मानों के ठीक बाद उपरोक्त त्रुटि दे रहा है
 – 
Davrick
13 फरवरी 2021, 22:58
हाँ, मैंने पाया। जब मैंने बेसयूआरएल को परिभाषित किया तो मैंने अंत में स्लैश (/) जोड़ा। और यहाँ जब मैं इसे कॉल कर रहा था http.post('$baseURL/en/users/login/') मैंने एक और स्लैश जोड़ा, जिसकी आवश्यकता नहीं थी। धन्यवाद।
 – 
Davrick
13 फरवरी 2021, 23:35