gpt4 book ai didi

c# - 从 ASP.Net Web Api 获取数据时获取 403 状态

转载 作者:行者123 更新时间:2023-11-30 17:32:45 25 4
gpt4 key购买 nike

我正在从 xamarin 表单应用程序中获取 WEB.API。在 .Net Web API 中创建的 Web API。但我收到错误

{StatusCode: 403, ReasonPhrase: 'ModSecurity Action', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
X-Powered-By-Plesk: PleskWin
Date: Sat, 02 Sep 2017 07:59:38 GMT
Content-Type: text/html
Content-Length: 2684
}}

同样的 URL 也在浏览器和 postman 中提供了正确的输出。我正在使用下面的代码来获取 web api。我不知道到底发生了什么。

string RestUrl = "http://msystemtest.msystem.co/api/Users?userId={0}&pass={1}";

var uri = new Uri(string.Format(RestUrl, uid, pass));
string resp = string.Empty;

var response = await client.GetAsync(uri);

string statHold = string.Empty;
if(response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
resp = JsonConvert.DeserializeObject<string>(content);
}

如果“http://msystemtest.msystem.co/api/Users?userId=test&pass=1”这个 URL 直接从浏览器和 postman 运行,它会给出正确的输出。

最佳答案

似乎服务器不喜欢您从非浏览器阅读此内容。这是从控制台应用程序模拟浏览器的代码:

using System;
using System.Net.Http;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");

var response = httpClient.GetAsync("http://msystemtest.msystem.co/api/Users?userId=test&pass=1").Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
Console.ReadKey();
}
}
}
}

关于c# - 从 ASP.Net Web Api 获取数据时获取 403 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com