页面授权令牌

问题描述

我有这个错误; 会不会是token有问题,上面写着Uri无效的token,但是我之前登录过,为什么读不出来?标题我像这样添加令牌..但它不起作用如何解决它?我可能做错了什么?

所以地图,如果哪里,哪里或其他东西不起作用.. 我是这个平台的新手,我可能问了一些非常简单的问题,抱歉。 谢谢大家....

    import 'dart:async';
    import 'package:bloc/bloc.dart';
    import 'package:equatable/equatable.dart';
    import 'package:Flutter/material.dart';
    import 'package:Flutter_kNowin_app/core/data/response.dart';
    import 'package:Flutter_kNowin_app/core/util/constants.dart';
    import 'package:Flutter_kNowin_app/features/promotions/domain/entities/check.dart';
    import 'package:Flutter_kNowin_app/features/promotions/domain/entities/spin.dart';
    import 'package:Flutter_kNowin_app/features/promotions/domain/repositories/spin_repository.dart';
    import 'package:Flutter_kNowin_app/features/promotions/domain/usecases/check_regular.dart';
    import 'package:Flutter_kNowin_app/features/promotions/domain/usecases/check_vip.dart';
    import 'package:Flutter_kNowin_app/injection_container.dart';
    
    part 'spin_event.dart';
    part 'spin_state.dart';
    
    
    
    enum SpinPageState {
      regular,vip,}
    class SpinBloc extends Bloc<SpinEvent,SpinState> {
      final SpinRepository spinRepository = sl<SpinRepository>();
      SpinPageState spinPageState;
      bool stateVip;
      bool spinState = false;
      String winThing;
      int winResult;
      int gamePlayCountVip;
      int gamePlayCountRegular;
      checksRegular ChecksRegular;
      checksVip ChecksVip;
    
    
    
      SpinBloc({
        @required checksRegular ChecksRegular,@required checksVip ChecksVip,})
          : assert(checksRegular != null),assert(checksVip != null),ChecksRegular = ChecksRegular,ChecksVip = ChecksVip,super(SpinState.initial());
    
    
      @override
      Stream<SpinState> mapEventToState(SpinEvent event,) async* {
        final SpinRepository spinRepository = sl<SpinRepository>();
        SpinState.initial();
    
          if (event is SpinLoadingEvent) {
            Response updateResponse;
            yield SpinLoadingState();
    
            final checkRegularOrFailure = await ChecksRegular(
                checksRegularParams());
            final checkVipOrFailure = await ChecksVip(
                checksVipParams());
    
            checkRegularOrFailure.fold((failure) {
              updateResponse = Response(
                status: false,message: UNEXPECTED_FAILURE_MESSAGE,statusCode: "FAIL CHECK REGULAR",);
            },(response) {
              spinState = true;
              spinPageState = SpinPageState.regular;
    
             response.toList().where((e){
              print("PEOPLE COUNT= ${ e.gamePlayed}");
             });
    
            });
            checkVipOrFailure.fold((failure) {
              updateResponse = Response(
                status: false,statusCode: "FAIL CHECK VIP",(response) {
    
              spinState = true;
              spinPageState = SpinPageState.vip;
            });
            yield SpinLoadingState();
          }
          if (event is SpinStartEvent) {
    
          }
    
      }
    }


RemoteCode;

    class PromotionRemoteDataSourceImpl implements PromotionRemoteDataSource {
      String token;
      final http.Client client;
    
      PromotionRemoteDataSourceImpl({this.client});
      Map<String,String> get defaultHeaders =>
          {
            'Accept': 'application/json','Authorization': 'Bearer $token',"Content-Type": "application/json"
          };
    
    
      Map<String,String> get defaultQueryParams => {
        "lang": Platform.localeName.split('_')[0],};
    
      @override
      Future<List<Check>> checksRegular() async {
        Uri uri = Uri.https(
            API_URL,'/promotions/check/regular',defaultQueryParams,);
        print("URİ: "+ uri.toString());
        final response = await client.get(uri,headers: defaultHeaders);
        final  body= json.decode(response.body);

解决方法

我认为问题出在这里

response.toList().where((e){
              print("PEOPLE COUNT= ${ e.gamePlayed}");
             });

原因如错误消息所述。响应变量为空,您试图将空转换为列表,而 Dart 不喜欢那样。实现一些方法来处理响应为空的场景,例如在那里有一个 if 语句,这有望解决您的问题

,

我解决了这样的错误;

// Display Custom Admin Product Fields
add_action( 'woocommerce_product_options_general_product_data','add_admin_product_custom_general_fields' );
function add_admin_product_custom_general_fields() {
    global $product_object;

    echo '<div class="options_group custom_dates_fields">
        <p class="form-field custom_date_from_field" style="display:block;">
            <label for="_custom_date_from">' . esc_html__( 'Custom date range','woocommerce' ) . '</label>
            ' . wc_help_tip( __("This is a description for that date range fields (in a help tip)…","woocommerce") ) . '
            <input type="text" class="short" name="_custom_date_from" id="_custom_date_from" value="' . esc_attr( $product_object->get_meta('_custom_date_from') ) . '" placeholder="' . esc_html( _x( 'From&hellip;','placeholder','woocommerce' ) ) . ' YYYY-MM-DD" maxlength="10" pattern="' . esc_attr( apply_filters( 'woocommerce_date_input_html_pattern','[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])' ) ) . '" />
        </p>
        <p class="form-field custom_date_to_field" style="display:block;">
            <input type="text" class="short" name="_custom_date_to" id="_custom_date_to" value="' . esc_attr( $product_object->get_meta('_custom_date_to') ) . '" placeholder="' . esc_html( _x( 'To&hellip;','woocommerce' ) ) . '  YYYY-MM-DD" maxlength="10" pattern="' . esc_attr( apply_filters( 'woocommerce_date_input_html_pattern','[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])' ) ) . '" />
    </div>';

    ?>
    <script>
    jQuery( function($){
        $( '.custom_dates_fields' ).each( function() {
            $( this ).find( 'input' ).datepicker({
                defaultDate: '',dateFormat: 'yy-mm-dd',numberOfMonths: 1,showButtonPanel: true,onSelect: function() {
                    var datepicker = $( this );
                        option         = $( datepicker ).next().is( '.hasDatepicker' ) ? 'minDate' : 'maxDate',otherDateField = 'minDate' === option ? $( datepicker ).next() : $( datepicker ).prev(),date           = $( datepicker ).datepicker( 'getDate' );

                    $( otherDateField ).datepicker( 'option',option,date );
                    $( datepicker ).change();
                }
            });
            $( this ).find( 'input' ).each( function() { date_picker_select( $( this ) ); } );
        });
    })
    </script>
    <?php
}

// Save Custom Admin Product Fields values
add_action( 'woocommerce_admin_process_product_object','save_admin_product_custom_general_fields_values' );
function save_admin_product_custom_general_fields_values( $product ){
    if( isset($_POST['_custom_date_from']) && isset($_POST['_custom_date_to']) ) {
        $product->update_meta_data( '_custom_date_from',esc_attr($_POST['_custom_date_from']) );
        $product->update_meta_data( '_custom_date_to',esc_attr($_POST['_custom_date_to']) );
    }
}