【发布时间】:2022-09-24 13:57:40
【问题描述】:
我是 react native 的新手,我正在尝试从 API 获取数据,但我累了,找不到解决方案。
我用过:
- 。网芯 6
- 视觉代码
- expo 运行模拟器 IOS
- 我的反应应用
import { StatusBar } from \"expo-status-bar\"; import { useState } from \"react\"; import { StyleSheet, Text, View } from \"react-native\"; import Home from \"./screens/Home\"; export default function App() { const [weather, setWeather] = useState(\"Loading..\"); const getWeather = async () => { var res = await fetch(\"https://192.168.1.205:5001/WeatherForecast\", { method: \"GET\", }) .then((response) => response.json()) .then((responseJson) => { alert(\"Succ\"); // Handle response here }) .catch((error) => { console.error(error); alert(error); }); }; // return <Home /> getWeather(); return ( <View> <Text></Text> <Text style={{ paddingTop: 50, marginLeft: 30 }}>{weather}</Text> </View> ); }- 控制器
using Microsoft.AspNetCore.Mvc; namespace RestaurantAPI.Controllers { [ApiController] [Route(\"[controller]\")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { \"Freezing\", \"Bracing\", \"Chilly\", \"Cool\", \"Mild\", \"Warm\", \"Balmy\", \"Hot\", \"Sweltering\", \"Scorching\" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } [HttpGet(Name = \"GetWeatherForecast\")] public IEnumerable<WeatherForecast> Get() { return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); } } }- 程序.cs
var builder = WebApplication.CreateBuilder(args); var CorsPolicy = \"_myAllowSpecificOrigins\"; // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddCors(options => { options.AddPolicy(name: CorsPolicy, b => { b.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin(); }); }); builder.WebHost.UseKestrel(); builder.WebHost.UseUrls(\"http://localhost:5001\", \"https://192.168.1.205:5001\"); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } //app.UseHttpsRedirection(); by waleed app.UseCors(CorsPolicy); app.UseAuthorization(); app.MapControllers(); app.Run();- 邮递员请求
在邮递员中调用此网址时,它会获取数据
在可视代码中从 ReactNative 调用 api 时出现此错误:\"网络请求失败\"
笔记 :
- 使用了 localhost url API
- 使用IP网络攻击服务器端
- 创建新端口 (\"5001\")
- 在 program.cs 中添加 CorsPolicy
但得到同样的错误,请任何人帮助我。
谢谢大家
标签: reactjs react-native api mobile entity-framework-6