Axios 发布请求失败,状态码为 401

时间:2021-02-15 17:43:57

标签: node.js react-native post axios

嗨,所以我试图根据课程代码从 https://opentimetable.dcu.ie/ 中提取数据,例如 CASE3,所以我试图提取周时间表,但我是 axios 新手,我的帖子请求因标题而失败相信并且我不确定为什么我认为我做对了?我基本上是想在下面的帖子请求中获取 api 中的课程标识

    import React, { useState, useEffect } from 'react';
    import { View, Text } from 'react-native';
    import axios from 'axios';
    
    export default function LoginScreen() {
      const [user, setUser] = useState({});
    
      const Query = 'CASE3';
    
    
      useEffect(() => {
        async function loadAPI() {
          const response = await axios.post(`https://opentimetable.dcu.ie/broker/api/CategoryTypes/241e4d36-60e0-49f8-b27e-99416745d98d/Categories/Filter?pageNumber=1&query=${Query}`,{headers:{
            "Authorization": "basic T64Mdy7m[",
            "Content-Type" : "application/json; charset=utf-8",
            "credentials": "include",
            "Referer" : "https://opentimetable.dcu.ie/",
            "Origin" : "https://opentimetable.dcu.ie/"}
          });
    
          setUser(response.data);
        }
    
        loadAPI();
      }, []);
    
      return (
        <View style={{ alignItems: "center", marginTop: 24 }}>
          <Text>
            {user.bio}
          </Text>
      </View>
      );
    }

1 个答案:

答案 0 :(得分:0)

401 错误状态响应代码表示请求缺少有效的身份验证凭据。所以我对你的授权令牌表示怀疑。 但是,使用邮递员我收到了 200 份邮件。所以令牌没问题。所以我的猜测是授权失败,因为你传递标题的方式。无论如何,这是代码,让我知道它是否有效。

const axios = require('axios');
useEffect(() => {
    const loadAPI = async () => {
        const config = {
            method: 'post',
            url: 'https://opentimetable.dcu.ie/broker/api/CategoryTypes/241e4d36-60e0-49f8-b27e-99416745d98d/Categories/Filter?pageNumber=1&query=CASE3',
            headers: { 
                'Authorization': 'basic T64Mdy7m['
            }
        };

        const response = await axios(config);
        console.log(response);  //just checking if works 
        setUser(response.data);
    }
    loadAPI();
}, []);

这是邮递员的回复: screenshot.png